我从内部连接中得到了奇怪的结果。这是SQL:
SELECT cm.PersonID
FROM dbo.vwCommitteeMembers cm
-- first join
INNER JOIN dbo.vwCommitteeTerms ct
ON (ct.CommitteeID = cm.CommitteeID)
-- second join
INNER JOIN dbo.vwCommitteeTermMembers ctm
ON (ct.ID = ctm.CommitteeTermID)
WHERE cm.CommitteeID = 124
如果我注释掉两个连接,我会得到 24 个结果。如果我取消注释第一个加入(留下第二个注释),我也会得到 24 个结果。但是,如果两个连接都未注释,则结果将膨胀到 576。由于24^2 = 576,我知道发生了什么,但我不知道为什么。我在 Windows 7 Pro x64 工作站上将 SQL Server Management Studio 2008 用于 SQL Server 2008 数据库。它“感觉”就像 SSMS 试图以某种方式优化我的查询,但我真的很想知道根本原因是什么,所以我以后不会遇到这个问题(因为这不是我第一次遇到它) . 我什至让一位同事看了一下,因为我认为我只是“离问题太近了”,他们也认为这看起来还不错。
谢谢!