2
我想LEFT JOIN 3個表,像這樣:如何創建有條件的LEFT JOIN?
DECLARE @CustomerID AS INT;
DECLARE @ProductID AS INT;
SELECT *
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id
LEFT JOIN table3 t3 ON t2.loc = t3.loc
WHERE t1.id = @ProductID
AND (t2.loc = t3.loc OR t2.loc IS NULL)
AND (t3.cid = @CustomerID OR t3.cid IS NULL)
有4個,我想解決的基本情況:
- @CustomerID <> 0,@ProductID存在於T1僅
- @CustomerID <> 0和@ProductID存在於t1和t2
- @CustomerID = 0和@ProductID存在於T1僅
- @客戶ID = 0和@ProductID存在於T1和T2
上面的代碼工作的情況下1-3,但萬一4.返回什麼,我想這是因爲最後的LEFT JOIN中斷(即使這兩個數據存在對於@ProductID,t1和t2)。
有沒有辦法讓第二個LEFT JOIN條件不使用IF ... ELSE邏輯?
謝謝,成功了! –