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