次のように、MySQL クエリに複数の JOIN のシーケンスがある場合
1. SELECT * FROM x
2. LEFT JOIN y ON x.id = y.id;
3. LEFT JOIN z ON x.id z.id
4. ...
個々の左結合は 1 行目の SELECT の結果に適用されますか? または、最初の左結合が SELECT の結果に適用され、2 番目の左結合が前の左結合の結果に適用されるようにクエリが処理されますか? ありがとう
あなたのJOIN
ルールはあなたの節によって正確に宣言されています。ON
つまり、あなたの質問には意味がありません。 table と table を結合しているという明確な宣言x
がy
ありx
ますz
。クエリは次のようになります。
SELECT * FROM x
LEFT JOIN y ON x.id = y.id
LEFT JOIN z ON y.id z.id
でx -> y -> z
宣言されていることを確認してくださいON y.id = z.id
。現在のクエリはz <- x -> y
結合を表しています。
SQL JOIN
ここの説明を見ることができます。