我有一个相当复杂的查询非常模拟测试查询我有以下:条件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