SQL中INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN区别

sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式
用实际的操作来展现表之间的区别:
现在有二张表
t_section
在这里插入图片描述
t_zone
在这里插入图片描述

  1. INNER JOIN
SELECT * FROM t_zone INNER JOIN t_section ON t_section.id =t_zone.id

结果集为交集。

在这里插入图片描述
2. FULL [OUTER] JOIN
(1)

SELECT * FROM t_zone FULL OUTER JOIN  t_section ON  t_zone.name = t_section.name 

Full outer join 产生A和B的并集。但是需要注意的是,对于没有匹配的记录,则会以null做为值。可以使用IFNULL判断。
注意:这个在获取到数据进行展示的时候,要注意NULL的判断。
(2)
同时使用ISNULL 的判断,可以取得A和B两者没有交集的数据集。

SELECT * FROM t_zone left JOIN t_section ON t_section.id=t_zone.id
WHERE t_zone.id IS null OR t_section.id IS null

总结:这个很好用,可以用来对生产或者测试上的数据进行补数据的操作。

3.LEFT [OUTER] JOIN

SELECT * FROM t_zone left JOIN t_section ON t_section.id=t_zone.id

运行结果:
在这里插入图片描述

4.RIGHT[OUTER] JOIN
RIGHT OUTER JOIN 是后面的表为基础,与LEFT OUTER JOIN用法类似。这里不介绍了。

总结

对以上的内容总结为三句话:

  • A INNER JOIN B ON……:内联操作,将符合ON条件的A表和B表结果均搜索出来,然后合并为一个结果集。 A LEFT JOIN
  • B ON……:左联操作,左联顾名思义是,将符合ON条件的B表结果搜索出来, 然后左联到A表上,然后将合并后的A表输出。 A RIGHT
  • JOIN B ON……:右联操作,右联顾名思义是,将符合ON条件的A表结果搜索出来,
    然后右联到B表上,然后将合并后的B表输出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值