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

JOIN вернул три строки: три заказа или три платежа

Клиент пишет, что видит списание не за тот заказ. Вы выполняете:

SELECT o.id, o.total, p.amount, p.status
FROM orders o
JOIN payments p ON p.order_id = o.id
WHERE o.id = 501;

Запрос вернул три строки: значения o.id и o.total во всех одинаковые, а p.amount и p.status разные.

Что вы напишете клиенту?

  • Заказ действительно продублирован в базе три раза, нужна эскалация на очистку дублей в таблице orders
  • JOIN всегда возвращает ровно одну строку на заказ, значит база повреждена и данные надо восстанавливать
  • Заказ один, а строк три, потому что к нему привязаны три попытки оплаты: повторяются поля заказа
  • Нужно добавить DISTINCT — тогда лишние платежи исчезнут из базы и картина по заказу станет корректной

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

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

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

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