Sql 简明教程
Left Join vs Right Join
左联接和右联接的主要区别在于联接表的方式。
它们都是外联接的类型;也就是说,它们保留一张表中不匹配的行,并丢弃另一张表中不匹配的行。左联接保留左表中不匹配的行,而右联接保留右表中不匹配的行。
Working of Left Join
SQL 中的 Left Join 或 Left Outer Join 会合并两个或更多表,其中第一个表按原样返回;但仅从后续表中返回与第一个表有对应项的记录。
如果 ON 子句与后续表中与第一个表中的行的记录匹配为零,左联接仍将返回第一个表中的这些行,但在右侧表的每一列中都为 NULL。
Working of Right Join
SQL 中的右联接或右外联接返回右侧表中的所有行,即使在左侧表中没有匹配项。这意味着,如果 ON 子句与右侧表中的记录在左侧表中匹配为 0(零)个记录;右联接仍将返回右侧表中的行,但在左侧表的每一列中都会有 NULL 值。
Left Join Vs Right Join
让我们在下面的表中总结左联接和右联接之间的所有差异 −
Left Join |
Right Join |
左联接将第一个表或左侧表的数据与第二个表中的数据匹配。如果数据匹配,则会合并记录;否则,将记录 NULL。 |
右联接将第二个表或右侧表的数据与第一个表中的数据匹配。如果数据匹配,则会合并记录;否则,将记录 NULL。 |
如果第一个表比第二个表少行,则会丢弃来自第二个表的额外的未匹配行。 |
如果第二个表比第一个表少行,则会丢弃来自第一个表的额外的未匹配行。 |
此联接也称为左外联接 |
此联接也称为右外联接 |
在 Transact SQL 中使用 *=,而不是使用 LEFT JOIN 或 LEFT OUTER JOIN 查询。 |
在 Transact SQL 中使用 =*,而不是使用 RIGHT JOIN 或 RIGHT OUTER JOIN 查询。 |
正如我们从总结中可以观察到的,左联接和右联接没有什么太大的不同。它们之间的每个差异都会归结为连接表和连接观点的方式。