MYSQL Query help, я думаю, это должно быть просто ... но я не могу его получить - PullRequest
0 голосов
/ 31 мая 2011

Итак, я объединяю две таблицы в запросе. Давайте использовать в качестве примера ниже:

SELECT property.address, property.city, property.state, property.zip, unit.name    
FROM   property, unit
WHERE  unit.propertyID = property.id

Эта таблица может возвращать список всех свойств, у которых есть совпадающие единицы в таблице единиц.

Моя проблема в том, что если у меня есть свойства, которые НЕ имеют юнитов, я все же хочу, чтобы те отображались с "N / A" или "NULL" или чем-то другим вместо имени юнита ...

На данный момент он полностью исключает те свойства, которые не имеют хотя бы 1 совпадающую единицу.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Самый простой способ обновить ваш запрос до рабочего порядка:

SELECT property.address, property.city, property.state, property.zip, unit.name    
FROM   property
left join unit on property.id = unit.propertyID

Лучший способ написать это, используя псевдонимы:

select p.address, p.city, p.state, p.zip, u.name
from property p
left join unit u on p.id = u.propertyID

Чтобы заполнить значение, когда нет единицы измерения:

select p.address, p.city, p.state, p.zip, IFNULL(u.name,'N/A') as unitName
from property p
left join unit u on p.id = u.propertyID
0 голосов
/ 31 мая 2011

Использовать левое внешнее соединение:

SELECT p.address, p.city, p.state, p.zip, u.name    
FROM property p LEFT OUTER JOIN unit u ON p.id = u.propertyID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...