JOIN

时间:2019-01-10 04:56:21

标签: sql

这是一个非常简单的问题,但我终生无法得到结果。

在SQL中确定表的“左”或“右”在哪里?

因此,如果必须使用此查询创建表t1和t2:

SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id

我确定t1在左边,但是如果我这样改变ON语句的顺序,该怎么办:

SELECT * FROM t1 LEFT JOIN t2 ON t2.id = t1.id

t2现在在左边还是t1在左边,因为它在LEFT的左边?

我很感谢大家花时间回答这个简单的问题。

n.b。我的问题是不是关于LEFT和RIGHT连接之间的区别

3 个答案:

答案 0 :(得分:3)

表名称的顺序在连接(LEFTRIGHT)中很重要,与连接条件的顺序无关。

所以在这里,两个查询都相同。

答案 1 :(得分:0)

左连接或左外部连接要求表名称为条件“ t1 LEFT JOIN t2”。在这里,t1与t2保持连接,这意味着t1的所有元素以及t2上的匹配行。

答案 2 :(得分:0)

  

LEFT JOIN关键字从左表(表1)返回所有记录,并从右表(表2)返回匹配的记录。如果不匹配,则结果从右侧为NULL。

类似地

  

RIGHT JOIN关键字返回右表(表2)中的所有记录,并返回左表(表1)中的匹配记录。如果没有匹配项,则结果从左侧为NULL。

用您的话说来确定表的左或右是

FROM表1 左/右 JOIN表2。

在关键字 LEFT联接之前的任何表都被视为左表,并且在关键字 RIGHT联接之后的任何表都被视为Right表。有关更多信息,您可以参考SQL-Joins