MySQL - нет результата при объединении таблиц с использованием значения NULL

0

Аналогичный вопрос здесь, но это немного другое...

У меня есть две таблицы, к которым я хочу присоединиться:

location
---------------------------
| id | city    | state_id |
---------------------------
| 1  | Denver  |        6 |
| 2  | Phoenix |        2 |
| 3  | Seattle |     NULL |
---------------------------

state
-------------------
| id | name       |
-------------------
| 1  | Alabama    |
| 2  | Alaska     |
| 3  | Arizona    |
| 4  | Arkansas   |
| 5  | California |
| 6  | Colorado   |
-------------------

SELECT
    location.id,
    location.city,
    state.name
FROM
    location
JOIN
    state ON state.id = location.state_id;

Однако в случае, когда location.state_id оказывается NULL (возможно, человек, вводящий данные, забыл выбрать состояние), запрос не вернул результат, но это не означает, что местоположение не имеет значения ' t существует.

Как мне обойти эту проблему и каким-то образом отобразить все местоположения, хотя state_id может быть NULL?

Теги:

1 ответ

5
Лучший ответ

Используйте LEFT OUTER JOIN

SELECT
location.id,
location.city,
state.name
FROM
    location
LEFT OUTER JOIN
    state ON state.id = location.state_id;
  • 0
    Никогда не использовал это раньше. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню