1

如果我在 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 的结果,第二个左连接应用于前一个左连接的结果?谢谢

4

1 回答 1

1

您的JOIN规则完全由您的ON条款声明。即你的问题没有意义 - 你有一个明确的声明,你正在加入 table xwithy和 table xwith z。如果您查询如下所示:

SELECT * FROM x 
LEFT JOIN y ON x.id = y.id
LEFT JOIN z ON y.id z.id 

那么它将是x -> y -> zjoin - 看到它是在ON y.id = z.id. 您当前的查询代表z <- x -> y联接。

你可以看到SQL JOIN 这里的描述。

于 2013-08-23T12:44:59.773 回答