这两个陈述/示例之间的结果或性能差异是否存在差异:
示例1(连续的INNER关系)
SELECT ID FROM TABLE T
INNER JOIN TABLE2 T2 ON T.ID = T2.ID
INNER JOIN TABLE3 T3 ON T2.ID = T3.ID
示例2(非连续的INNER关系)
SELECT ID FROM TABLE T
INNER JOIN TABLE2 T2 ON T.ID = T2.ID
INNER JOIN TABLE3 T3 ON T.ID = T3.ID
或这两个陈述/例子之间:
示例1(连续左关系)
SELECT ID FROM TABLE T
INNER JOIN TABLE2 T2 ON T.ID = T2.ID
LEFT JOIN TABLE3 T3 ON T2.ID = T3.ID
示例2(非连续左关系)
SELECT ID FROM TABLE T
INNER JOIN TABLE2 T2 ON T.ID = T2.ID
LEFT JOIN TABLE3 T3 ON T.ID = T3.ID
唯一的区别是第二个Join
位于Table
,而第一个示例位于Table2
。我很确定他们会回复同样的事情,但我只是想在这里寻找更有经验的答案。感谢。
答案 0 :(得分:3)
结果没有区别。这些陈述在功能上是等同的。
性能差异取决于特定的数据库和版本以及数据。
我的经验是,在这种简单的情况下,两个查询之间的性能通常没有差异。 SQL2008优化器将根据统计信息(表的大小,索引的可用性)以任何有意义的顺序运行连接,无论您以何种方式编写此查询。