MySQL的内连接、外连接、(间接)全连接
发布于个人的CSDN上:MySQL的内连接、外连接、(间接)全连接
内连接
- 将两个表中存在连结关系的字段符合连接条件的记录形成记录集
Select A.name,B.name from A inner join B on A.id=B.id
和下面的
Select A.name,B.name from A,B where A.id=B.id
结果是一样的(内连接的inner
关键字可省略);
外连接
分为2种:
- 左外连接(以左表为基础)
- 左连接A、B表结果包括A的全部记录和符合条件的B的记录。
- 右外连接(以右表为基础)
- 右联结A、B表的结果和左联结B、A的结果是一样的
也就是说:
Select A.name,B.name from A Left Join B on A.id=B.id
和下面的
Select A.name,B.name from B Right Join A on B.id-A.id
执行后的结果是一样的。
(间接)全连接
-
全连接查询:
是在内连接的基础上增加 左右两边没有显示的数据
-
MySQL不支持全连接
,并不支持全连接 full JOIN
关键字 -
想要全连接,需要使用
union
连接左连接和右连接
,得到全连接
MySQL提供了
UNION
关键字.使用UNION
可以间接
实现full JOIN
功能。
#查询人员和部门的所有数据
SELECT * FROM person LEFT JOIN dept ON person.did = dept.did
UNION
SELECT * FROM person RIGHT JOIN dept ON person.did = dept.did;
三表连接查询
#查询商店、价格、种类的所有数据
select price.id,price.store_code,store.name,price.fruit_code,category.second_name
from (price left join store on price.store_code=store.code)
left join category on price.fruit_code=category.fruit_code
参考资料
[1] MySQl数据查询之多表查询
[2] Mybatis实现多表联合查询
💥 一个正在学习全栈的 💥
⭐ 精神小伙 ⭐
💥 MelodyJerry 💥