Выборка существующих и отсутствующих значений из другой таблицы (SQL)

Доброго времени суток всем.

Есть table_product

id_product; name
1; Обувь
2; Шапки
3; Брюки
4; Куртки
5; Рубашки

есть table_option

id_option; product_id; color
1; 3; синий
2; 4; зеленый
5; 1; красный

Необходимый ответ

id_product; name; color
1; Обувь1; красный
2; Шапки; NULL
3; Брюки; синий
4; Куртки; зеленый
5; Рубашки; NULL

то есть в ответе присутствуют все строки из table_product, столбец color - в нем или соответствующее значение или NULL, если нет соответствующей записи.

У меня вариант вложенного SELECT работает, но наверное есть более правильное решение


Ответы (1 шт):

Автор решения: Dmity

LEFT OUTER JOIN (LEFT JOIN) использовали? Как-то так:

SELECT p.id_product, p.name, o.color
FROM table_product p LEFT JOIN table_option o
ON p.id_product = o.product_id;

Пример: http://sqlfiddle.com/#!9/1c2838b/6/0

→ Ссылка