我在 SQL SERVER 2008 上的存储过程中编写了以下查询:(我故意截断了表名,并使查询更易于阅读)
1)
select Pr.Id from D D , DP DP, P P, Pr Pr
where D.Id = DP.Id AND DP.Id = P.Id AND P.Id = Pr.Id;
它工作得很好,但是当我使用 Inner Joins 编写相同的查询时
2)
select Pr.PId from D D
INNER JOIN DP DP ON D.Id = DP.Id
INNER JOIN P P ON DP.Id = P.Id
INNER JOIN Pr Pr ON P.Id = Pr.Id
它引发错误:无法绑定多部分标识符“Pr.Id”。
3)我再次尝试了另一个版本:
select Pr.Id from Pr Pr
INNER JOIN P P ON Pr.Id = P.Id
INNER JOIN DP DP ON P.Id = DP.Id
INNER JOIN Dealer D ON DP.Id = D.Id
我不明白为什么 1 & 3 工作而 2 不工作。虽然我觉得他们都是一个意思。