我有一個相當複雜的查詢非常模擬測試查詢我有以下:條件INNER JOIN在SQL Server
SELECT C.*
FROM Customer C
INNER JOIN CustDetail CD ON C.CustomerId = CD.CustomerId
INNER JOIN Address A ON CD.DetailID = A.DetailID
INNER JOIN Group G ON C.CustomerId = G.CustomerId --Join only when C.code = 1
INNER JOIN GroupDetail D ON G.GroupId = D.DetailId --Join only when C.code = 1
WHERE G.Active = 1 AND --Only when C.code = 1
D.code = '1' AND --Only when C.code = 1
C.Id = @customerId
我想對Group G
和GroupDetail D
做INNER JOIN
S(和ofcourse沒有他們根據表列C.code = 1
的WHERE
條件我更換了INNER JOIN
s的LEFT OUTER JOIN
S表示兩個連接條件,但結果集不是預期
如何有條件地做了JOIN
'INNER JOIN Group G ON C.CustomerId = G.CustomerId AND C.code = 1'? – 2012-02-06 22:17:35
您可以發佈一些示例數據,期望的結果,以及如何使用左連接獲得的結果集「不是預期的」?瞭解*預期會使得解決問題更容易。 – 2012-02-06 22:41:24
一個客戶可以有多少個代碼,他自然要求客戶。客戶ID在客戶表中是唯一的?如果你只想在代碼= 1的情況下進行連接,但不關心它是否會成爲我會走的路。 – 2012-02-06 22:51:22