我一直在使用这个年,所以现在是充分了解它的时候了。假设这样的查询:多个LEFT连接 - 什么是“左”表?
SELECT
*
FROM a
LEFT JOIN b ON foo...
LEFT JOIN c ON bar...
的documentation告诉我们,进行
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression
LEFT OUTER JOIN
首先,内连接。然后,对于T1中不满足与T2中的任何行的连接条件的每一行,联合行将在T2的列中添加空值。因此,对于T1中的每一行,连接表总是至少有一行。
问题很简单:在这种情况下什么是T1
?是a
?或者是a LEFT JOIN b ON foo
? (或者它是一样的吗?)
根据你如何加入数据(你的例子中的foo和bars),例如,如果在语句“... JOIN c ON bar ...”中,条件使用表a和b ,它将成为JOIN b ON foo。 –
'(左连接b)左连接c',即第一个'a'是左表,然后'(左连接b)'是下一个左表。 – jarlh
@ jarlh如果你把它写成答案并提供参考资料,我会接受它 – vektor