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

Выгрузка пользователей с заказами: почему часть зарегистрированных не попала в результат

Вы проверяете, что все пользователи, зарегистрированные в этом году, попали в выгрузку:

SELECT u.id, u.email, o.id AS order_id
FROM users u
JOIN orders o ON o.user_id = u.id
WHERE u.created_at >= '2026-01-01';

В выгрузке 4 210 строк, а в таблице users за этот период 6 800 записей.

В чём причина расхождения?

  • Пользователи без заказов в результат не попадают: для проверки полноты нужен LEFT JOIN
  • Пользователи с несколькими заказами схлопнулись в одну строку, нужен DISTINCT
  • Условие по дате нужно перенести в ON, иначе фильтр применяется не полностью
  • Запрос вернёт всех пользователей, но у части строк поле order_id будет пустым

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

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

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

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