MySQL中左连接和右连接的区别举例详解
作者:甜瓜瓜哥
在MySQL中多表查询是常见的操作,涉及到两个或多个表的数据合并,这篇文章主要介绍了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左连接和右连接区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!