目录
比较a join b 与 b join a
他们之间没有实质区别。a left join b是说a表对b表进bai行左外连接,a做基础表。b right join a 是指b表对a表进行右外连接,也是a做基础表。就类似我在你的左边,和你在我的右边一个道理,差别是select * ...查询出来的表字段顺序不一样。
一、内连接
求两个表共有的记录

select * from tb1_emp a inner join tb1_dept b on a.deptId = b.id;
二、左连接
求A表所有记录以及AB表共有的记录(B表没有的字段补null)

select * from tb1_emp a left join tb1_dept b on a.deptId = b.id;
三、右连接
求B表所有记录以及AB表共有的记录(A表没有的字段补null)

select * from tb1_emp a right join tb1_dept b on a.deptId = b.id;
四、左外连接
从AB表中求A表独有的记录

select * from tb1_emp a left join tb1_dept b on a.deptId = b.id where b.id is null;
五、右外连接
从AB表中求B表中独有的记录

select * from tb1_emp a right join tb1_dept b on a.deptId = b.id where a.deptId is null;
六、全连接
查询AB表中所有的记录

select * from tb1_emp a left join tb1_dept b on a.deptId = b.id
union
select * from tb1_emp a right join tb1_dept b on a.deptId = b.id
七、全外连接
查询A表独有的记录和B表独有的记录

select * from tb1_emp a left join tb1_dept b on a.deptId = b.id where b.id is null
union
select * from tb1_emp a right join tb1_dept b on a.deptId = b.id where a.deptId is null;
本文详细介绍了MySQL中的七种Join操作,包括内连接、左连接、右连接、左外连接、右外连接、全连接和全外连接。通过实例解析了各种连接的区别和使用场景,帮助读者理解不同连接在查询数据时的行为差异。
10万+

被折叠的 条评论
为什么被折叠?



