Ответ
Для этого используется LEFT JOIN (или LEFT OUTER JOIN). Он возвращает все строки из левой (первой) таблицы и соответствующие строки из правой таблицы. Если совпадений нет, поля из правой таблицы будут содержать NULL.
Пример:
SELECT u.name, o.order_id
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
Этот запрос выведет всех пользователей, включая тех, у кого нет заказов. Для таких пользователей order_id будет NULL.
Сравнение с другими JOIN:
- INNER JOIN — возвращает только строки, где есть совпадение в обеих таблицах.
- RIGHT JOIN — возвращает все строки из правой таблицы и совпадающие из левой.
- FULL OUTER JOIN — возвращает все строки из обеих таблиц, заполняя отсутствующие совпадения
NULL.