Вступить в клуб →
лёгкаявопросSQL для аналитики

После 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

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела