SQL left join与right join

之前一直对左右连接的区别与联系模糊不清,今天自己做了一个例子,清晰易懂。

  1. 首先 建两张表:表a 、表b
表a.png
表b.png
left join
  • 先看这一种情况:
SELECT *
FROM a A
LEFT JOIN b B
ON A.id=B.id

查询结果:

left join.png

left join 左边是主表,即主表是a表,所以优先参考a,在b表中没有对应的数据就显示为空。

  • 第二种情况:
SELECT *
FROM b B
LEFT JOIN a A
ON A.id=B.id

查询结果:


left join.png

这种情况主表是 b 表,所以优先考虑b表数据,对应的在a表中没有的数据显示为null,但是不存在这种情况,所以只能显示a表中,符合条件的两条数据。

同时可以发现,在sql语句中,from后面先出现的表,在查询的时候最先显示出来。
同理,在select 的后面,先查询的字段会在查询结果中,先显示出来。
right join
  • 第一种情况:
SELECT *
FROM a A
RIGHT JOIN b B
ON A.id=B.id

查询结果:

right join.png
可以看到与 left join 的第二种情况 查询的数据是一样的,但是表中显示的结果是相反的。
  • 第二种情况:
SELECT *
FROM b B
RIGHT JOIN a A
ON A.id=B.id

查询结果:

right join.png
可以看到与 left join 的第一种情况,查询数据一样,但是显示顺序是相反的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容