1. 程式人生 > >left join NULL 值問題

left join NULL 值問題

今天一個同事問我如下的語句得出的結果不對:
select  A.a,B.b from A left join B where B.b < c;
他希望得到的記過是 那些 與B 有關聯,並且B 滿足 B.b < c的結果,以及沒有與B關聯的結果都出來,但是上面的語句 只會出來那些與B有關聯並滿足條件B.b < c 的列。 只是因為如果沒有關聯B.b 為null,比較的結果也為NULL。改成如下:
select  A.a,B.b from A left join B where B.b is null or  B.b < c;


所以在left join 的時候,如果用B表裡面的欄位作為判斷,一定要注意判斷 NULL 值的情況,這個知識點不難,只是很多新手在寫的時候,會容易遺忘而已。