MySQL中左连接和右连接的区别举例详解
1. 概述
MySQL中的左连接(LEFT JOIN)和右连接(RIGHT JOIN)是两种外连接方式,核心区别在于保留哪个表的全部数据。左连接以左表为主,右连接以右表为主。两者本质对称,实际选择取决于数据需求和查询可读性。
2. 理论说明
以左连接(LEFT JOIN)为例说明,右连接同理:
- 保留左表所有行:无论右表是否有匹配,左表的所有记录都会显示。
- 右表无匹配时填充NULL:若右表无匹配数据,结果中右表对应的字段值为NULL。
- 语法示例:
SELECT * FROM 左表 LEFT JOIN 右表 ON 左表.字段 = 右表.字段;
左连接和右连接可相互转换,通过调整表顺序实现相同效果:
A LEFT JOIN B = B RIGHT JOIN A
3. 举例说明

- 左连接结果(A LEFT JOIN B):
保留所有学生,未匹配的订单为NULL。
id | name | product 1 | Alice | 苹果 2 | Bob | NULL 3 | Charlie| 香蕉
- 右连接结果(A RIGHT JOIN B):
保留所有订单,未匹配的学生为NULL。
id | name | product 1 | Alice | 苹果 3 | Charlie| 香蕉 NULL | NULL | 橘子
关键注意事项:
1)ON条件与WHERE过滤:ON子句影响连接时的匹配逻辑,不满足条件的右表行会被设为NULL,但左表行仍保留(左连接)。
2)WHERE子句在连接后过滤,可能导致排除左/右表的NULL行(失去外连接意义)。
总结
到此这篇关于MySQL中左连接和右连接区别的文章就介绍到这了,更多相关MySQL左连接和右连接区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SQL CREATE INDEX提高数据库检索效率的关键步骤详解
这篇文章主要为大家介绍了SQL CREATE INDEX提高数据库检索效率的关键步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12
MySQL利用profile分析慢sql详解(group left join效率高于子查询)
最近因为一个用了子查询的sql语句查询很慢,严重影响了性能,所以需要进行优化,下面这篇文章主要跟大家介绍了关于MySQL利用profile分析慢sql的相关资料,文中介绍的非常详细,需要的朋友们可以参考借鉴,下面来一起看看吧。2017-03-03


最新评论