2012-01-31 23 views
6

Tatil için ülke, tatil köyleri ve fotoğraflar içeren bir tablo var. Her fotoğraf albüm için başlık olarak işaretlenmiş olabilir. Ülke kimliği ve adı, tesis kimliği ve isim ve fotoğrafla birlikte, yalnızca başlık olarak işaretlendiyse, eklenmemiş veri kümesini seçmek istiyorum, aksi halde - null. sql value return null eğer değer bulunamadı

aşağıdaki yapmaya çalıştım:

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 

Ve ben tüm fotoğrafların listesi var - başlıklı değil. Is_title dosyalama ('ve p.is_title = 1') tarafından filering eklerseniz, fotoğraf başlıklı olmayan tüm tatil köyleri, sonuçta elde ettiğim verilerden değil - sonuç verisinden ayrılır. onlar için tüm satırı neden olmaz, böylece NEREDE maddede yerine

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 

cevap

16

ek bir dayanağa (ler) dahil sizin KATILIN durumda:

Sadece gibi bir şey (son satırı bakınız) almak istiyorum kaldırıldı:

LEFT OUTER JOIN dbo.resorts_photo AS p 
ON p.resort_id = t.inc 
AND p.is_title = 1 
İlgili konular