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

现在有两个表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 

这里写图片描述

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

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诗琪小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值