一篇文章搞懂MySQL各种联结JOIN

七种join模型

在这里插入图片描述
其中左外连接,右外连接,全外连接各有两种模型

创建表

在这里插入图片描述
我们创建两张表,部门表department和员工表employee,主键都为id

内连接

在这里插入图片描述
根据内连接特点,我们可以得出7条正确结果:根据部门表的id,一行一行的和员工表的部门id匹配,有结果就显示

左外连接(第一种情况)

在这里插入图片描述
我们可以看到,左外连接的特点是LEFT OUT左边的表的departmentId和右边的表的id一行一行的匹配,包括左表所有的行,右表没有记录就用null填充

右外连接(第一种情况)

在这里插入图片描述
我么可以看到,右外连接是将RIGHT JOIN右边的表department中的id列,一行一行的与employee表匹配,可以看到employee表中并没有5的departmentId,故此行用null填充

左外连接(第二种情况)

在这里插入图片描述
显示的结果是employee表独有的一行,对比第一种情况的左外连接,我们可以看到,当department表的id为null,查询的结果就是employee表的独有结果

右外连接(第二种情况)

在这里插入图片描述
根据左外连接的情况一样,我们可以得出右外连接的特殊结果

全外连接(第一种情况)

在这里插入图片描述
mysql不支持全外连接的写法,这个时候我们需要另一种写法,使用关键字union
在这里插入图片描述
我们同样可以得出一样的结论,其原理就是将内连接的结果加上左外连接和右外连接的结果

全外连接(第二种情况)

在这里插入图片描述
我们通过整合左外连接和右外连接的第二种情况,就可以得出两表特有的结果的集合

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值