2010-05-04 98 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