SQL INNER JOIN: соединить заказы с именами клиентов
Соединение по ключу клиента добавляет к каждой строке заказа сведения из справочника customers. Зерно результата остаётся прежним: одна строка на заказ, а не одна на клиента.
Используйте явное условие соединения и квалифицируйте одноимённые поля именем таблицы или алиасом. Если после JOIN появились неожиданные повторы, проверьте уникальность ключа справочника, прежде чем добавлять DISTINCT.
Проверьте решение без регистрации. Объяснения и последовательная практика — в курсе «SQL с нуля: бесплатный курс с практикой».
Заказы с именами клиентов
В базе хранятся сведения о клиентах и их заказах. Иногда нужно просто посмотреть на каждый оформленный заказ и сразу видеть, кому он принадлежит — без подсчётов и группировок, одна строка на один заказ.
Напиши запрос к таблицам customers(customer_id, name) и orders(order_id, customer_id, order_date, total_amount), который возвращает три столбца: имя клиента (name), идентификатор заказа (order_id) и его сумму (total_amount). В результат попадают только те клиенты, у которых есть хотя бы один заказ; клиенты без заказов не включаются. Строки упорядочены по order_id по возрастанию.
Верните ровно три столбца в указанном порядке. Запрос должен состоять из одного SELECT и не должен изменять данные.
Пример
- Подготовка данных
INSERT INTO customers VALUES (1, 'Алиса'), (2, 'Борис'), (3, 'Вера'); INSERT INTO orders VALUES (102, 1, '2024-03-05', 2000), (101, 1, '2024-01-10', 5000), (103, 2, '2024-02-20', 8000);
- Вывод
Алиса|101|5000 Алиса|102|2000 Борис|103|8000
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
