左连接与右连接:差异与比较

连接生成一个可以单独使用或相互组合使用的表。 因此,建议理解这些联接以及它们之间的区别,以确定特定的联接以及在特殊情况下应该选择右联接还是左联接。

关键精华

  1. 左连接包括左表中的所有记录和右表中的匹配记录,为不匹配的行填充 NULL 值。
  2. 右连接包括右表中的所有记录和左表中的匹配记录,为不匹配的行填充 NULL 值。
  3. 左连接和右连接是彼此的镜像,可以根据查询中的表顺序互换。

左连接与右连接

左连接返回左表中的所有行和右表中的匹配行,如果右表中没有匹配项,则结果将包含空值。 右连接,与左连接相同,但它返回右表中的所有行和左表中的匹配行。

左连接与右连接

即使表格右侧没有匹配项, SQL LEFT 处理从左表传入的所有条目。 这意味着当 ON 子句在表的右侧包含 0(零)个条目时,连接仍将在主表的每个字段中返回一个带有 NULL 的记录。

另一方面,右连接发现即使在左表中,SQL RIGHT 也从右表接收和发送所有条目。

这意味着右连接传递右表中的所有数据,以及表中接受的任何值,如果不存在适合此操作的连接谓词,则为 NULL。

另请参阅:  MTS 与 M2T:差异与比较

对比表

比较参数左加入右加入
用法它连接多个表并提供左表中的所有记录以及右表中的匹配行。它连接多个表并传递右表中的所有数据以及首先从左表中匹配的行。
查询执行在包括左连接在内的查询执行过程中,首先接收所有表的表项,然后使用堆栈循环获取右表列值的匹配数据,将NULL值替换为其他不匹配的数据。在执行包含右连接的查询时,首先获取右表的所有数据,然后使用堆栈循环收集左表列值的匹配记录。
结果集如果在右表中没有找到匹配的数据,结果集的值将为 NULL 或零。如果在左表中没有找到匹配的数据,结果集的值将为 NULL 或零。
同义词左外连接右外连接
句法选择 column_name(s)
FROM table1
左连接表 2
ON table1.column_name = table2.column_name;
选择 列名
table1
正确加入 table2
ON 表1.列名 = 表2.列名;

什么是左连接?

要根据包含匹配值的列合并来自两个数据库的数据,我们在 SQL 中使用 JOIN。 例如,如果您有一个包含客户数据的表(首先是客户 ID 、标识符等),然后是包含特定时间的订单数据(交易 ID、时间、客户 ID、产品 ID 等)的另一个表

让我们看一下 Left Join 的语法以正确理解它的用途:

另请参阅:  Hadoop 与 SQL:差异与比较

选择 column_name(s)

FROM table1

左连接表 2

ON table1.column_name = table2.column_name

  1. “SELECT”——首先选择我们希望在数据集中查看的类别。
  2. 'FROM' – 输入表的数据,我们希望在其中维护所有信息。
  3. 'LEFT JOIN' – 输入提到的第二个表的数据。
  4. 'ON' – 使用此短语指定将使用哪些字段来连接表格。

如果有多个匹配项,则复制左表中的列以直接包含右表中的所有数据。 如果未找到匹配项,它会保留左表中的行,然后将 NULL 插入右表的相关列中。

什么是右连接?

说白了,right join的操作和left join很相似,恰恰相反。

右连接本质上与左连接非常相似,因为它们从 RIGHT JOIN 短语中指定的表中检索所有行,但仅从 FROM 子句中指定的表中检索相应的行。

RIGHT JOIN 很少使用,因为 RIGHT JOIN 的内容可以通过简单地交换 LEFT JOIN 中两个连接表的标签来获得。

值得一提的是,LEFT JOIN和RIGHT JOIN也可以表示为LEFT 外连接 以及 RIGHT OUTER JOIN。

Right Join 的语法在下面进一步描述。 右连接和左连接的操作是相同的,但顺序相反:

选择 column_name(s)
FROM table1
右连接表 2
ON table1.column_name = table2.column_name

左连接和右连接之间的主要区别

  1. 左连接短语比右连接短语更常用。
  2. 左连接公式为左表所有匹配记录+不匹配记录,右连接公式为右表所有匹配记录+不匹配记录。
参考资料
  1. https://www.tutorialspoint.com/sql/sql-left-joins.htm#:~:text=The%20SQL%20LEFT%20JOIN%20returns,matches%20in%20the%20right%20table.&text=This%20means%20that%20a%20left,of%20no%20matching%20join%20predicate.
  2. https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.

最后更新时间:11 年 2023 月 XNUMX 日

点1
一个请求?

我付出了很多努力来写这篇博文,为您提供价值。 如果您考虑在社交媒体上或与您的朋友/家人分享,这对我很有帮助。 分享是♥️

关于“左连接与右连接:差异与比较”的 13 个思考

  1. 以如此全面的方式解释了右连接和左连接之间的固有差异,从而显着拓宽了人们对 SQL 连接的理解。

    回复

发表评论

想保存这篇文章以备后用? 点击右下角的心形收藏到你自己的文章箱!