TypechoJoeTheme

MelodyJerry

统计
登录
用户名
密码
/
注册
用户名
邮箱

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

2021-02-27
/
1 评论
/
249 阅读
/
正在检测是否收录...
02/27

发布于个人的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实现多表联合查询

[3] mysql 内连接、外链接以及全连接的实现

[4] MySql的join(连接)查询 (三表 left join 写法)

MySQL
朗读
赞 · 1
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

MelodyJerry

本文链接:

http://melodyjerry.top/index.php/archives/411/(转载时请注明本文出处及文章链接)

评论 (1)
  1. whtociobrk 作者
    Windows XP · Internet Explore

    MySQL的内连接、外连接、(间接)全连接 - MelodyJerry
    awhtociobrk
    whtociobrk http://www.gemdm9882bkl8e9sy610190a6pxhp564s.org/
    [url=http://www.gemdm9882bkl8e9sy610190a6pxhp564s.org/]uwhtociobrk[/url]

    2021-09-28 回复
IP信息

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

今日天气

V2EX热门榜

  • 获取失败!

标签云