MySQL Left Join与Right Join区别
MySQL 主要有 LEFT JOIN 和 RIGHT JOIN 两种连接方式。这些连接之间的主要区别在于包含不匹配的行。LEFT JOIN 包括来自左侧的所有记录和来自右表的匹配行,而 RIGHT JOIN 返回来自右侧的所有行和来自左表的不匹配行。在本节中,我们将了解 LEFT 和 RIGHT 连接之间的流行差异。在探讨比较之前,让我们先了解一下MySQL中的 JOIN、LEFT JOIN 和 RIGHT JOIN 子句。
一、什么是 JOIN 语句?
Join连接从多个表中查询数据,并通过条件返回两个或多个表的组合结果。join 子句中的条件指示列在指定表之间的匹配方式。
二、什么是左连接语句?
Left Join 子句连接两个或多个表,并返回左表中的所有行和右表中的匹配记录,如果没有找到任何匹配记录,则返回 null。它也称为左外连接。因此,Outer 是与 Left Join 一起使用的可选关键字。
我们可以通过以下视觉表示来理解它:
要阅读有关左连接的更多信息,请单击此处。
三、什么是右连接语句?
Right Join 子句连接两个或多个表并返回右侧表中的所有行,并且只返回另一个表中满足指定连接条件的结果。如果它从左侧表中找到不匹配的记录,则返回 Null 值。它也称为右外连接。因此,Outer 是与 Right Join 一起使用的可选子句。
我们可以通过下面的视觉表现来理解它。
要阅读有关 右连接 的更多信息,请单击此处。
四、左连接语句 语法
以下是 LEFT JOIN 的一般语法:
SELECT column_list FROM table_name1
LEFT JOIN table_name2
ON column_name1 = column_name2
WHERE join_condition
五、右连接语句 语法
以下是 RIGHT JOIN 的一般语法:
SELECT column_list FROM table_name1
RIGHT JOIN table_name2
ON column_name1 = column_name2
WHERE join_condition
六、左连接与右连接的区别
以下比较表快速解释了它们的主要区别:
Left Join左连接 | Right Join右连接 |
---|---|
它连接两个或多个表,从左表返回所有记录,并从右表返回匹配行。 | 它用于连接两个或多个表,从右表返回所有记录,并从左表中匹配行。 |
如果右侧表上没有匹配的行,则结果集将包含空值。 | 如果左侧表上没有匹配的行,则结果集将包含空值。 |
它也称为左外连接。 | 它也被称为右外连接。 |
七、左连接与右连接 区别的示例
让我们通过示例了解两种连接之间的区别。假设我们有一个名为“ customer ”和“ orders ”的表,其中包含以下数据:
customer表:
orders表:
左连接示例
以下 SQL 语句使用 LEFT JOIN 查询从两个表中返回匹配记录:
SELECT cust_id, cust_name, order_num, order_date
FROM customer LEFT JOIN orders
ON customer.cust_id = orders.order_id
WHERE order_date < '2020-04-30';
成功执行查询后,我们将得到如下输出:
右连接示例
以下 SQL 语句使用 RIGHT JOIN 查询从两个表中返回匹配记录:
SELECT cust_id, cust_name, occupation, order_num, order_date
FROM customer
RIGHT JOIN orders ON cust_id = order_id
ORDER BY order_date;
成功执行查询后,我们将得到如下输出:
热门文章
优秀文章