MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL LEFT/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一起使用的可选关键字。
我们可以通过以下直观表示来理解它:
左联接vs右联接
要了解有关LEFT联接的更多信息,请单击此处。

什么是正确的联接子句?

右连接子句连接两个或多个表并返回右表中的所有行,并且仅返回满足指定连接条件的另一个表中的结果。如果从左侧表中找到不匹配的记录,则返回Null值。也称为 右外部联接。因此,Outer是用于Right Join的可选子句。
我们可以通过以下 视觉表示来理解它。
左联接vs右联接
要了解有关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 JOIN RIGHT JOIN
它连接两个或多个表,从左表返回所有记录,并从右表返回匹配的行。 它用于联接两个或多个表,从右表返回所有记录,并从左表返回匹配的行。
如果右侧表上没有匹配的行,则结果集将包含空值。 如果左侧表中没有匹配的行,则结果集将包含空值。
它也被称为LEFT OUTER JOIN。 也称为RIGHT OUTER JOIN。

示例

让我们通过示例来了解两个联接之间的区别。假设我们有一个名为 "customers"和" orders"的表,其中包含以下数据:
表: customer
左联接与右联接
表: orders
左联接与右联接
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';
成功执行查询后,我们将获得如下输出:
左联接与右联接
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;
成功执行查询后,我们将得到如下输出:
左联接与右联接
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4