2012-06-27 2 views
3

У меня есть две таблицы: Home (ID, имя) и фотографии (ID, homeid, имя файла, всплеск)выбора строк из таблицы присоединяющиеся только одну строку другой таблицы

Главная первичный ключ ID, фото первичный ключ это ID. У дома может быть несколько фотографий. Всплеск может быть 0 или 1, и для каждого HomeID максимум одна фотография может иметь всплеск = 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

Ответ на ваш вопрос, используйте LEFT OUTER JOIN синтаксис MySQL ...

+0

Это лучший ответ – shkschneider

+0

спасибо. Я использовал левое внешнее соединение, но я декларировал только объявление «on» (home.id = photo.homeid), и я забыл photo.splash = 1. – Release

Смежные вопросы