После LEFT JOIN из отчёта пропали клиенты без заказов
Нужен список всех клиентов с их заказами за 2026 год, включая тех, кто ничего не заказывал. Аналитик написал:
SELECT u.user_id, o.order_id
FROM users u
LEFT JOIN orders o ON o.user_id = u.user_id
WHERE o.created_at >= '2026-01-01';
В результате остались только клиенты с заказами. Почему?
- LEFT JOIN возвращает только совпавшие строки, а чтобы сохранить клиентов без заказов, нужен FULL JOIN
- Порядок таблиц в LEFT JOIN не важен, поэтому строки без заказов теряются в любом случае
- Не хватает GROUP BY u.user_id — без группировки клиенты без заказов не выводятся
- Условие WHERE по столбцу правой таблицы отсекает строки с NULL — выходит INNER JOIN
