我想知道以下查询(使用两种不同的联接语法)之间的区别是什么。我在一些我继承的代码中看到了这一点,并且好奇如果结果总是相同的。如果没有,为什么你会使用一个在另一个。两个TSQL联接有什么区别?
查询#1实施例:
SELECT * FROM TableA a
INNER JOIN TableB b
INNER JOIN TableC c
ON b.TableBId = c.TableCId
ON b.TableBId = a.TableAId
查询#2实施例:
SELECT * FROM TableA a
INNER JOIN TableB b
ON b.TableBId = a.TableAId
INNER JOIN TableC c
ON b.TableBId = c.TableCId
看看执行计划是否有差异。 – 2012-04-13 20:07:44
您确定#1是有效的SQL。根据http://msdn.microsoft.com/en-us/library/ms177634.aspx我看不出如何工作。 – Alex 2012-04-13 20:12:16
@Alex是的,那是有效的SQL。这里是小提琴显示没有执行错误:http://sqlfiddle.com/#!3/b00427/1 – 2012-04-13 20:15:13