Oracle -- left join查詢結果不是左表的全部資料的解決方法
阿新 • • 發佈:2019-02-11
left join在實際應用中並不是查出資料都是左邊的全部資料,為什麼呢?看看自己的解決方法吧
SELECT
T.xx,
T1.xx,
...
FROM xxx T
LEFT JOIN xxx T1
ON T.ID = T1.ID
WHERE T.xx = xx
and T1.xx= xx
本來想查T表所有符合條件的資料,但是結果查出來不是,怎麼辦呢,不急,現在看看解決方法吧,當然如果不正確的話,歡迎指出哦
1.在left join後增加WHERE條件中關於T1的過濾條件
SELECT
T.xx,
T1.xx,
...
FROM xxx T
LEFT JOIN (SELECT xx,xx2,... FROM xxx WHERE xx= x) T1
ON T.ID = T1.ID
WHERE T.xx = xx
2.將WHERE後的條件放在on後面,去掉WHERE條件
SELECT
T.xx,
T1.xx,
...
FROM xxx T
LEFT JOIN xxx T1
ON T.ID = T1.ID AND T.xx = xx AND T1.xx = xx