Sql 只需翻转表格,就可以将“右外”写为“左外”

Sql 只需翻转表格,就可以将“右外”写为“左外”,sql,sql-server,Sql,Sql Server,我们可以通过在查询中翻转表的位置来使用右连接而不是左连接,反之亦然。如果可以,那么为什么我们需要两个连接?是的。以下查询具有相同的结果: SELECT * FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column2 SELECT * FROM table2 RIGHT JOIN table1 ON table1.column1 = table2.column2 如果开发人员希望所有来自#t1的记录,而只希望匹配来自#t2的

我们可以通过在查询中翻转表的位置来使用右连接而不是左连接,反之亦然。如果可以,那么为什么我们需要两个连接?

是的。以下查询具有相同的结果:

SELECT *
FROM table1
LEFT JOIN table2 ON table1.column1 = table2.column2


SELECT *
FROM table2
RIGHT JOIN table1 ON table1.column1 = table2.column2

如果开发人员希望所有来自#t1的记录,而只希望匹配来自#t2的记录,那么他可以将查询编写为 选择*from#t1 left join#t2或选择*from#t2 right join#t1

两者都是一样的。它们给出了相同的结果

首先,不仅仅是这两种类型的联接。还有一个完整的外部联接,在这种情况下,结果中包括来自两侧的不匹配行。此外,还提供了内部联接(仅匹配行)和交叉联接(笛卡尔积)


在类似本线程中示例的简单查询中,可以使用LEFT或RIGHT并反转表以返回所需的结果。但是,当向查询中添加其他表时,添加具有不同联接类型的表可能比重构整个查询以获得相同的语义更容易。

是的,唯一的区别是编写联接表的顺序,您可以从左重写为右,反之亦然。所以严格地说,我们不需要两个连接

有一个。

:对于
=