2010-05-04 99 views
0

我有以下SQL SELECT語句SQL JOIN語句

SELECT bar_id, bar_name, town_name, advert_text  
FROM bar, towns, baradverts 
WHERE town_id = town_id_fk 
AND bar_id = bar_id_fk 

我的問題是,因爲不是每個欄在表中的廣告「baradverts」,這條沒有結果來了。換句話說,對於那些沒有廣告字符串的酒吧,我需要一個NULL。

+3

你正在尋找所謂的「左外連接」。 – 2010-05-04 12:10:54

回答

7

很難說哪個列與哪個表相關,但我認爲這就是您要查找的內容。如果你發佈你的模式,這將有所幫助。

SELECT bar_id, bar_name, town_name, advert_text  
FROM bar b 
inner join towns t on t.town_id = b.town_id_fk 
left outer join baradverts ba on t.town_id = ba.town_id_fk 
    AND b.bar_id = ba.bar_id_fk