【MySQL高级】七种JION理论和实例详解

虽然项目一直在写左外连接、内连接等等的sql,但是其实对具体的实现还是不太清楚,接下来跟我一起来了解一下吧!

1. INNER JON 内连接

在这里插入图片描述
对应的sql语句

select <select_list>
from table A a
INNER JOIN Table B b
ON A.key=B.key

实例

表1
在这里插入图片描述
执行结果
在这里插入图片描述
表2
在这里插入图片描述
执行结果
在这里插入图片描述
内连接
在这里插入图片描述
执行结果
在这里插入图片描述

分析

  • 可以看出,表1有6列,表2有3列,内连接有9列,说明内连接两表的列拼接起来
  • 有重复的列username,并没有合并,都显示出来了
  • ON后为连接条件,内连接只保留条件公有部分,就是保留a.id和b.user_id相等的行,即id=28,use_id=28的行保留下来

小结

内连接只有两者的公有部分

2. LEFT JON 左外连接

图解

在这里插入图片描述
对应的sql语句

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key

实例

在这里插入图片描述

在这里插入图片描述

分析

  • 左外连接就是两表的列拼接起来,A表的数据都要,B表没有的行补NULL
3. Right JION 右外连接

图解

在这里插入图片描述
对应的sql

select <select_list>
from table A a
RIGHT JOIN Table B b
ON A.key=B.key

实例

sql
在这里插入图片描述
执行结果
在这里插入图片描述

分析

  • B表数据都要,A表没有的自动补全
4. Right JION 右连接

图解

在这里插入图片描述
对应的sql

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key
where A.key=NULL

实例

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

5. LEFT JION 左连接

图解

在这里插入图片描述
对应的sql

select <select_list>
from table A a
LEFT JOIN Table B b
ON A.key=B.key
where B.key=NULL

实例

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

6. 全外连接

图解

在这里插入图片描述

对应的sql

select <select_list>
from table A a
OUTER JOIN Table B b
ON A.key=B.key

实例

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

小结

mysql不能直接操作全外连接,需要使用左外连接与右外连接的两个结果集进行合并并去除重复。union 去重,union all 不去重。

7. 交叉外连接

图解

在这里插入图片描述

对应的sql

select <select_list>
from table A a
OUTER JOIN Table B b
ON A.key=B.key
where B.key=NULL
AND A.key=NULL

实例

在这里插入图片描述
执行结果
在这里插入图片描述
暂不支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

渐暖°

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

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

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

打赏作者

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

抵扣说明:

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

余额充值