如果我在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的结果并将第二个左联接应用于先前的左联接的结果的方式处理查询?谢谢

最佳答案

JOIN规则完全由ON子句声明。即您的问题毫无意义-您明确声明要将表xy和表xz连接。如果您查询将如下所示:

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 here的描述。

10-08 11:06
查看更多