MySQL 左连接和右连接的区别

MySQL 左连接和右连接的区别

MySQL主要有两种连接,即左连接和右连接。这些连接的主要区别在于未匹配行的 包含 。左连接包括左侧的所有记录和右侧表中的匹配行,而右连接返回右侧的所有行和左侧表中未匹配的行。在本节中,我们将了解左连接和右连接之间的主要区别。在进行比较之前,让我们首先了解JOIN、LEFT JOIN和RIGHT JOIN子句在 MySQL 中的含义。

JOIN子句是什么?

Join 用于从多个表中查询数据,并通过条件返回两个或多个表的组合结果。连接子句中的条件指示指定表之间的列如何匹配。

LEFT JOIN子句是什么?

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

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

MySQL 左连接和右连接的区别

要了解有关LEFT连接的更多信息,请单击此处。

RIGHT JOIN子句是什么?

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

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

MySQL 左连接和右连接的区别

要阅读更多关于 RIGHT JOIN 的信息, 点击这里 。

LEFT JOIN 子句的语法

以下是 LEFT JOIN 的一般语法:

SELECT column_list  FROM table_name1 
LEFT JOIN table_name2 
ON column_name1 = column_name2
WHERE join_condition

以下是LEFT OUTER JOIN的一般语法:

SELECT column_list  FROM table_name1 
LEFT OUTER JOIN table_name2 
ON column_name1 = column_name2
WHERE join_condition

RIGHT JOIN语句的语法

下面是RIGHT JOIN语句的一般语法:

SELECT column_list  FROM table_name1 
RIGHT JOIN table_name2 
ON column_name1 = column_name2
WHERE join_condition

下面是RIGHT OUTER JOIN的一般语法:

SELECT column_list  FROM table_name1 
RIGHT OUTER JOIN table_name2 
ON column_name1 = column_name2
WHERE join_condition

左连接和右连接区别

下面的比较表以简明的方式解释了它们的主要区别:

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

示例

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

表:customer

MySQL 左连接和右连接的区别

表:orders

MySQL 左连接和右连接的区别

LEFT JOIN 示例

以下 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';

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

MySQL 左连接和右连接的区别

RIGHT JOIN 示例

以下 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;

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

MySQL 左连接和右连接的区别

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程