左连接与右连接的区别

2025年3月17日 | 阅读 3 分钟

MySQL 主要有两种连接方式:LEFT JOIN 和 RIGHT JOIN。它们之间的主要区别在于对不匹配行的包含。LEFT JOIN 包含左表的所有记录以及右表中匹配的行,而 RIGHT JOIN 返回右表的所有行以及左表中不匹配的行。在本节中,我们将了解 LEFT JOIN 和 RIGHT JOIN 之间常见的区别。在探索比较之前,让我们先了解一下 MySQL 中的 JOIN、LEFT JOIN 和 RIGHT JOIN 子句。

什么是 JOIN 子句?

JOIN 用于从多个表中查询数据,并通过一个条件返回两个或多个表合并后的结果。JOIN 子句中的条件指示了如何匹配指定表中的列。

什么是 LEFT JOIN 子句?

Left Join 子句 将两个或多个表连接起来,返回左表的所有行以及右表中匹配的记录,如果找不到匹配的记录则返回 null。它也被称为 Left Outer Join。所以,Outer 是 Left Join 的可选关键字。

我们可以通过以下可视化表示来理解它

Left Join vs Right Join

要阅读有关 LEFT JOIN 的更多信息,请点击此处

什么是 RIGHT JOIN 子句?

Right Join 子句 将两个或多个表连接起来,返回右表的所有行,以及左表中满足指定连接条件的记录。如果找到左表中的不匹配记录,则返回 Null 值。它也被称为 Right Outer Join。所以,Outer 是 Right Join 的可选子句。

我们可以通过以下可视化表示来理解它。

Left Join vs Right Join

要阅读有关 RIGHT JOIN 的更多信息,请点击此处

LEFT JOIN 子句的语法

以下是 LEFT JOIN 的通用语法

以下是 LEFT OUTER JOIN 的通用语法

RIGHT JOIN 子句的语法

以下是 RIGHT JOIN 的通用语法

以下是 RIGHT OUTER JOIN 的通用语法

LEFT JOIN 与 RIGHT JOIN 的比较

以下比较表简明扼要地解释了它们的主要区别

LEFT JOINRIGHT JOIN
它连接两个或多个表,返回左表的所有记录以及右表中的匹配行。它用于连接两个或多个表,返回右表的所有记录以及左表中的匹配行。
如果右侧表中没有匹配的行,则结果集将包含 null 值。如果左侧表中没有匹配的行,则结果集将包含 null 值。
它也称为 LEFT OUTER JOIN。它也称为 RIGHT OUTER JOIN。

示例

让我们通过示例来理解这两种连接的区别。假设我们有一个名为 "customer" 和 "orders" 的表,其中包含以下数据

表:customer

Left Join vs Right Join

表:orders

Left Join vs Right Join

LEFT JOIN 示例

以下 SQL 语句使用 LEFT JOIN 查询从两个表中返回匹配的记录

成功执行查询后,我们将获得以下输出

Left Join vs Right Join

RIGHT JOIN 示例

以下 SQL 语句使用 RIGHT JOIN 查询从两个表中返回匹配的记录

成功执行查询后,我们将获得以下输出

Left Join vs Right Join