连接生成一个可以单独使用或相互组合使用的表。 因此,建议理解这些联接以及它们之间的区别,以确定特定的联接以及在特殊情况下应该选择右联接还是左联接。
关键精华
- 左连接包括左表中的所有记录和右表中的匹配记录,为不匹配的行填充 NULL 值。
- 右连接包括右表中的所有记录和左表中的匹配记录,为不匹配的行填充 NULL 值。
- 左连接和右连接是彼此的镜像,可以根据查询中的表顺序互换。
左连接与右连接
左连接返回左表中的所有行和右表中的匹配行,如果右表中没有匹配项,则结果将包含空值。 右连接,与左连接相同,但它返回右表中的所有行和左表中的匹配行。
即使表格右侧没有匹配项, SQL LEFT 处理从左表传入的所有条目。 这意味着当 ON 子句在表的右侧包含 0(零)个条目时,连接仍将在主表的每个字段中返回一个带有 NULL 的记录。
另一方面,右连接发现即使在左表中,SQL RIGHT 也从右表接收和发送所有条目。
这意味着右连接传递右表中的所有数据,以及表中接受的任何值,如果不存在适合此操作的连接谓词,则为 NULL。
对比表
比较参数 | 左加入 | 右加入 |
---|---|---|
用法 | 它连接多个表并提供左表中的所有记录以及右表中的匹配行。 | 它连接多个表并传递右表中的所有数据以及首先从左表中匹配的行。 |
查询执行 | 在包括左连接在内的查询执行过程中,首先接收所有表的表项,然后使用堆栈循环获取右表列值的匹配数据,将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 的语法以正确理解它的用途:
选择 column_name(s)
FROM table1
左连接表 2
ON table1.column_name = table2.column_name
- “SELECT”——首先选择我们希望在数据集中查看的类别。
- 'FROM' – 输入表的数据,我们希望在其中维护所有信息。
- 'LEFT JOIN' – 输入提到的第二个表的数据。
- '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
左连接和右连接之间的主要区别
- 左连接短语比右连接短语更常用。
- 左连接公式为左表所有匹配记录+不匹配记录,右连接公式为右表所有匹配记录+不匹配记录。
- 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.
- https://mode.com/sql-tutorial/sql-right-join/#:~:text=Right%20joins%20are%20similar%20to,names%20in%20a%20LEFT%20JOIN%20.
最后更新时间:11 年 2023 月 XNUMX 日
Sandeep Bhandari 拥有塔帕尔大学计算机工程学士学位(2006 年)。 他在技术领域拥有 20 年的经验。 他对各种技术领域都有浓厚的兴趣,包括数据库系统、计算机网络和编程。 你可以在他的网站上阅读更多关于他的信息 生物页面.
我认为 SQL RIGHT JOIN 并不像建议的那样很少使用,它在更复杂的查询中有其利基用途。
我理解你的观点,但是 SQL RIGHT JOIN 在实践中确实是一个不太常见的选择。
以如此全面的方式解释了右连接和左连接之间的固有差异,从而显着拓宽了人们对 SQL 连接的理解。
当然,这篇文章有令人难以置信的详细和深入的分析。
我认为这里的内容过于具体,对于那些缺乏丰富的 SQL 经验的人来说并不是特别有用。
确实,这里的内容可能更适合那些对SQL有更深入理解的人。
虽然这里的信息很有趣,但文章的语气有时似乎有点专有。
这确实是一个有效的观察。
彻底的比较表确实有助于区分两种类型的连接。这篇文章确实很有启发。
可以肯定的是,这篇文章确实很引人注目。
我完全同意。
了解左连接和右连接之间的区别以及在什么情况下应该使用它们绝对是至关重要的。本文巧妙地实现了这一点。
绝对地!一丝不苟的精准度是值得称赞的。