2012-01-31 115 views
6

我有桌子與度假村的國家,度假村和照片。每張照片可能被標記爲相冊標題。我想選擇帶有國家/地區ID和名稱的連接數據集,度假村ID和名稱以及照片僅在標記爲標題時使用,否則爲空。如果沒有找到值,則sql連接返回null

我試圖做到以下幾點:

select 
    s.id as c_id, 
    s.name as c_name, 
    t.id as r_id, 
    t.name as r_name, 
    p.thumbnail as image, 
    p.description as desc, 
    p.is_title 
from dbo.countries s 
join dbo.resorts t on t.state=s.inc 
left outer join dbo.resorts_photo p on p.resort_id=t.inc 
where [email protected]_id 

而且我已經得到了所有照片的清單 - 標題不能及的。如果我通過is_title提交('and p.is_title = 1')添加文件,所有沒有標題爲照片的度假村將從結果數據中刪除 - 而不是我想要的。

我只是想獲得類似的信息(見最後一行):在你的JOIN條件

c_id c_name  r_id r_name image desc is_title 
2 Australia 17 Adelaida 0xXXXX NULL 1 
2 Australia 178 BB Rief 0xXXXX blah 1 
2 Australia 160 Brum  NULL NULL NULL 

回答

16

所包括的額外謂詞(S),而不是在WHERE子句,以便它們不會導致整個行被刪除:

LEFT OUTER JOIN dbo.resorts_photo AS p 
ON p.resort_id = t.inc 
AND p.is_title = 1 
相關問題