【MySQL】七种JOIN连接详解

1.内连接
内连接查询出的数据是两张表的交集,即上图中红色所表示的部分。

2.左外连接
左外链接如图中红色部分的内容,即包含左边表的全部行(不管右边的表中是否存在与它匹配的行),和右边表中全部匹配的行。

3.右外链接
右外链接如图中红色部分的内容,即包含右边表的全部行(不管左边的表中是否存在与它匹配的行),和左边表中全部匹配行。

 

 4.左连接

左连接如图中红色部分的内容,查询出左表独有的数据

 解析:其实上图就是在左外连接的基础上进行的,左外连接得到了左表,但是左表里还包含了一部分左右表都具有相同数据的区             域,这时需要将这部分相同数据去掉,去除的条件就是B.key IS NULL 

5.右连接

 如果看懂了上面的左连接,那么右连接大同小异,就是查询出右表独有的数据

6.全连接(Mysql中不支持下图写法)

查询出左右两表的所有数据 

但是!MySQL中并不支持这种写法,所以只能通过别的方法。

A、B的所有也就是A的独有、B的独有 和A、B的共同拥有的数据

Mysql中可以使用:select * from Table A left join Table B on A.Key = B.Key       (找出A的所有)

                               union            (去重)

                               select * from Table A right join Table B on A.Key = B.Key     (找出B的所有)

     

7.全外连接(Mysql中不支持下图写法)

左右表的共有数据之外的数据查询 

筛选出对于A表而言B为空,对于B表而言A为空的

MySQL中也不支持这种写法,所以只能通过别的方法。

其实全外连接也就是A的独有+B的独有

Mysql语法:          select * from Table A left join Table B on A.Key = B.Key  where B.Key is null      (找出A的独有)

                               union            (去重)

                               select * from Table A right join Table B on A.Key = B.Key where A.Key is null    (找出B的独有)

  • 27
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL连接Join on是一种用于连接两个或多个相关表的操作。内连接会返回两个表中至少有一个匹配的行。在使用Join on时,需要指定连接条件,即通过指定两个表中的某个字段进行匹配。例如,使用Join on可以查询参加了考试的同学的学号、姓名、科目编号和分数。 在MySQL中,可以使用以下语法进行内连接查询: ``` SELECT 列名 FROM 表1 JOIN 表2 ON 表1.字段 = 表2.字段; ``` 其中,表1和表2是要连接的两个表,字段是用于匹配的字段。 举个例子,假设有两个表student和result,我们想要查询参加了考试的同学的信息,可以使用内连接查询: ``` SELECT s.studentno, studentname, subjectno, studentresult FROM student AS s JOIN result AS r ON s.studentno = r.studentno; ``` 这个查询会返回学号、姓名、科目编号和分数。 除了内连接,还有左连接和右连接。左连接会从左表中返回所有的值,即使右表中没有匹配;右连接会从右表中返回所有的值,即使左表中没有匹配。可以根据具体需求选择合适的连接方式。 希望以上信息对您有帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [MySQL中的join以及on条件的用法](https://blog.csdn.net/weixin_44177568/article/details/103038236)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MySql 联表查询 Join ON详解](https://blog.csdn.net/m0_52641831/article/details/125242509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值