这是一个非常简单的问题,但我终生无法得到结果。
在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连接之间的区别
答案 0 :(得分:3)
表名称的顺序在连接(LEFT
,RIGHT
)中很重要,与连接条件的顺序无关。
所以在这里,两个查询都相同。
答案 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