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左连接和右连接区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
解决mysql出现错误:ERROR 1046 (3D000):No database selected
这篇文章主要给大家介绍了关于解决mysql出现错误:ERROR 1046 (3D000):No database selected的相关资料,No database selected可以理解为没有选择种数据库,文中通过图文介绍的非常详细,需要的朋友可以参考下2024-01-01
linux安装两个mysql(8.0和5.7),并同时使用方式
这篇文章主要介绍了如何在CentOS 7上下载和安装MySQL 8.0和MySQL 5.7.30,并详细描述了安装步骤,包括解压、配置、初始化和启动等过程2024-12-12


最新评论