暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的内连接、外连接、(间接)全连接、三表连接

MelodyJerry喜欢前端的Java玩家 2021-06-24
2217

「目录」

  • 内连接

  • 外连接

  • (间接)全连接

  • 三表连接查询

内连接

  • 将两个表中存在连结关系的字段符合连接条件的记录形成记录集

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


由于本公众号无留言功能,故接入小程序

间接实现 留言  效果



文章转载自MelodyJerry喜欢前端的Java玩家,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论