У меня довольно сложный запрос, который в значительной степени имитирует тестовый запрос, который у меня есть ниже:
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
Я хотел бы сделать INNER JOIN
s на Group G
и GroupDetail D
(и конечноне иметь их в условиях WHERE
на основе столбца таблицы C.code = 1
Я заменил INNER JOIN
s на LEFT OUTER JOIN
s для обоих условий соединения, но набор результатов не соответствует ожидаемому
Как условно сделать JOIN