SQL 左连接 vs 右连接

SQL 左连接 vs 右连接

左连接和右连接的主要区别在于表的连接方式。

它们都是外连接的类型;也就是说,它们保留一张表中不匹配的行,并丢弃另一张表中不匹配的行。左连接保留左表中的不匹配行,而右连接保留右表中的不匹配行。

左连接的工作原理

左连接 或者 左外连接 在SQL中将两个或多个表合并在一起,第一个表原样返回,但是只有在后续表中有与第一个表对应的记录时才返回。

如果ON子句在后续表中找不到与第一个表的行匹配的记录,左连接仍然会将第一个表中的这些行返回到结果中,但是每列的值都为NULL。

语法

下面是SQL中左连接的基本语法:

SELECT table1.column1, table2.column2...
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

示例

下面的示例演示了对两个相关表进行左连接操作。这里,第一个表包含工资信息,而第二个表包含婚姻状况信息。由于Alex的状态未知,因此未在表中记录。

SQL 左连接 vs 右连接

当使用左连接查询时,由于没有与Alex的状态匹配的记录,所以在最终的表中该值被记录为NULL。

右连接的工作原理

在SQL中,右连接或右外部连接查询返回右表中的所有行,即使在左表中没有匹配的记录。这意味着如果ON子句将左表中的0条记录与右表中的记录匹配,则右连接仍将返回结果中的右表行,但左表的每个列将具有NULL值。

语法

以下是SQL中右连接的基本语法-

SELECT table1.column1, table2.column2...
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

示例

现在在这个例子中,对相同的表进行了右连接操作。在这里,我们从右表开始连接;因为右表不含有与Alex的行匹配的记录值,所以该行被从最终表中丢弃。

SQL 左连接 vs 右连接

最终表格仅包含两行数据,因为右表格仅包含两行。

左连接与右连接

让我们在下表中总结左连接和右连接之间的所有区别。

左连接 右连接
左连接将第一个表或左表的数据与第二个表的数据进行匹配。如果数据匹配,则记录被合并;否则,记录为NULL。 右连接将第二个表或右表的数据与第一个表的数据进行匹配。如果数据匹配,则记录被合并;否则,记录为NULL。
如果第一个表的行数少于第二个表的行数,多出的未匹配行将被丢弃。 如果第二个表的行数少于第一个表的行数,多出的未匹配行将被丢弃。
这种连接也被称为左外连接。 这种连接也被称为右外连接。
在Transact SQL中,可以使用*=来替代LEFT JOIN或LEFT OUTER JOIN查询。 在Transact SQL中,可以使用=*来替代RIGHT JOIN或RIGHT OUTER JOIN查询。

从摘要中我们可以观察到,左连接和右连接之间并没有太大的区别。它们之间的每个区别都归结于表的连接方式和连接角度。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程