SqlServer 等值连接,左连接,右连接

来源:互联网 发布:重庆知秋凤凰怎么样 编辑:程序博客网 时间:2024/05/21 13:56

现在有两个表A表和B表:现在我想把A表记录显示在界面,但是显示给用户看到的是userName,而不是op(操作员id).现在需要通过op=userid条件把两个表连接成一个表。在做项目的过程中一直使用等值连接,结果A表只显示op不为null 的记录,这不是我想要的,我希望的结果是不管op 是否为null,都要把记录显示出来,所以就总结一下等值连接,左连接,右连接。

A表:
这里写图片描述

B表:
这里写图片描述

等值连接:返回A表和B表对应字段相同的记录行

SELECT A.itemNo, A.number, A.op,B.userName                   FROM A INNER JOIN B ON A.op = B.userID 

结果:
这里写图片描述

左连接:返回包括左表中的所有记录和右表中联结字段相等的记录

SELECT A.itemNo, A.number, A.op,B.userName                   FROM A LEFT OUTER JOIN B ON A.op = B.userID 

这里写图片描述

右连接: 返回包括右表中的所有记录和左表中联结字段相等的记录。

SELECT A.itemNo, A.number, A.op,B.userName                   FROM A RIGHT OUTER JOIN B ON A.op = B.userID 

这里写图片描述

总结:如果两个表联接的字段不为空,用等值连接;如果其中一个表中的联接的字段为空,还想把这条记录显示出来,就需要把这个表作为主表,左连接左表为主表,右连接右表为主表。

阅读全文
0 0