MySQL中左连接和右连接的区别举例详解

 更新时间:2025年07月31日 09:57:54   作者:甜瓜瓜哥  
在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. 举例说明

  1. 左连接结果(A LEFT JOIN B):
    保留所有学生,未匹配的订单为NULL。
id | name   | product
1  | Alice  | 苹果
2  | Bob    | NULL
3  | Charlie| 香蕉
  1. 右连接结果(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提高数据库检索效率的关键步骤详解

    这篇文章主要为大家介绍了SQL CREATE INDEX提高数据库检索效率的关键步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • MySQL约束超详解

    MySQL约束超详解

    这篇文章主要介绍了MySQL约束包括非空约束、唯一约束、主键约束、外键约束,需要的朋友可以具体参考下面文章内容
    2021-09-09
  • ubuntu系统中安装mysql5.6(通过二进制)

    ubuntu系统中安装mysql5.6(通过二进制)

    今天工作中需要对一台ubantu的系统安装mysql,因为以前一直使用的是centos,虽然它也是类unix但是和redhat或centos命令上还是有点差别。所以通过网上查阅资料,终于安装成功了,现在将步骤分享给大家,有需要的朋友们可以参考借鉴。
    2016-10-10
  • MySQL 查询 并集、交集、差集方式

    MySQL 查询 并集、交集、差集方式

    这篇文章主要介绍了MySQL 查询 并集、交集、差集方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • mysql设置指定ip远程访问连接实例

    mysql设置指定ip远程访问连接实例

    这篇文章主要介绍了mysql设置指定ip远程访问连接的方法,分别实例讲述了从任意主机和指定ip访问远程MySQL数据库的方法,代码简单功能实用,需要的朋友可以参考下
    2014-10-10
  • 详解MySQL中的存取权限

    详解MySQL中的存取权限

    这篇文章主要介绍了详解MySQL中的存取权限,针对用户使用数据库权限分配的问题做出说明,需要的朋友可以参考下
    2015-07-07
  • 绿色版mysql注册卸载服务方法

    绿色版mysql注册卸载服务方法

    如果直接用绿色版的mysql,则下载后解压,只需对目录下的my.ini文件的basedir(mysql的基本目录)和datadir(mysql数据目录)指定就可以,如下所示。
    2013-06-06
  • windows无法启动MySQL服务报错1067的解决方法

    windows无法启动MySQL服务报错1067的解决方法

    这篇文章主要为大家详细介绍了windows无法启动MySQL服务报错1067的3种解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • MySQL通过binlog实现恢复数据

    MySQL通过binlog实现恢复数据

    在MySQL中,如果不小心删除了数据,可以利用二进制日志(binlog)来恢复数据,本文将通过几个示例为大家介绍一下具体实现方法,希望对大家有所帮助
    2025-01-01
  • MySQL利用profile分析慢sql详解(group left join效率高于子查询)

    MySQL利用profile分析慢sql详解(group left join效率高于子查询)

    最近因为一个用了子查询的sql语句查询很慢,严重影响了性能,所以需要进行优化,下面这篇文章主要跟大家介绍了关于MySQL利用profile分析慢sql的相关资料,文中介绍的非常详细,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-03-03

最新评论