2012-06-27 61 views
3

我有兩個表:主頁(ID,姓名)和照片(ID,homeid,文件名,飛濺)選擇行

首頁主鍵是ID,圖片的主鍵是ID。一個家可以有多張照片。 Splash可以是0或1,並且對於每個HomeID,最多一張照片可以具有splash = 1。

現在我想SELECT * FROM Home爲每個家庭合併其飛濺,如果存在,否則splash返回null。

我該怎麼辦?

這裏的表的例子:

Home 
ID  name 
1  home1 
2  home3252 
3  home5326 

Photos 
ID  homeid  filename  splash 
1  1   asda.jpg  0 
2  1   aspg.jpg  1 
3  2   nasf.jpg  0 
4  2   qfqj.jpg  1 
5  3   vnas.jpg  0 
6  3   nfao.jpg  0 
+1

你有什麼這麼遠嗎? – Limey

回答

3
select h.name, p.filename 
from Home h 
left join Photos p on (h.id = p.homeid and p.splash = 1) 
+0

謝謝你的回答。問題解決了。我接近解決方案,但我只在一個方程中插入「on」聲明。非常感謝 – Release

1

答案是你的問題,使用MySQL的LEFT OUTER JOIN語法...

+0

這是最好的答案 – shkschneider

+0

謝謝。我正在使用左外連接,但我只在「on」聲明中聲明(home.id = photo.homeid),而我忘記了photo.splash = 1。 – Release