我一直在使用這個年,所以現在是充分了解它的時候了。假設這樣的查詢:多個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