我想從一個匹配的表中取回結果全部指定值在指定值位於另一個表中。我可以這樣做:如何返回沒有多個EXISTS子句的表中匹配的行?
SELECT * FROM Contacts
WHERE
EXISTS (SELECT 1 FROM dbo.ContactClassifications WHERE ContactID = Contacts.ID AND ClassificationID = '8C62E5DE-00FC-4994-8127-000B02E10DA5')
AND EXISTS (SELECT 1 FROM dbo.ContactClassifications WHERE ContactID = Contacts.ID AND ClassificationID = 'D2E90AA0-AC93-4406-AF93-0020009A34BA')
AND EXISTS etc...
但是,當我達到約40個EXISTS子句時,就會發生。錯誤消息是「查詢處理器耗盡內部資源並且無法生成查詢計劃,這是一種罕見事件,並且只適用於引用大量表或分區的極其複雜的查詢或查詢,請簡化查詢「。
如何接觸只需在ClassificationID上使用IN子句? – Limey
IN子句的問題在於它與任何ClassificationID匹配。我希望它匹配所有分類ID – Colin