Используйте INNER JOIN customers и orders по customers.id = orders.customer_id. Тогда Diana без заказов не попадёт в результат, а у клиентов с несколькими заказами будет несколько строк.
У вас есть две таблицы: customers и orders.
Используйте INNER JOIN customers и orders по customers.id = orders.customer_id. Тогда Diana без заказов не попадёт в результат, а у клиентов с несколькими заказами будет несколько строк.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
У вас есть две таблицы: customers и orders.
Напишите SQL-запрос, который выведет имена клиентов и названия товаров, которые они заказывали. Выводите только тех клиентов, у которых есть хотя бы один заказ.
Таблица customers
id name 1 Alice 2 Bob 3 Charlie 4 Diana
Таблица orders
id customer_id product 1 1 Laptop 2 2 Smartphone 3 1 Mouse 4 3 Keyboard 5 2 Monitor
Ответ
Используйте INNER JOIN customers и orders по customers.id = orders.customer_id. Тогда Diana без заказов не попадёт в результат, а у клиентов с несколькими заказами будет несколько строк.
SELECT c.name, o.product
FROM customers AS c
INNER JOIN orders AS o ON o.customer_id = c.id
ORDER BY o.id;
Результат в порядке заказов: Alice — Laptop, Bob — Smartphone, Alice — Mouse, Charlie — Keyboard, Bob — Monitor. DISTINCT здесь не требуется: нужно вывести заказанные товары, а не только уникальные имена клиентов. ORDER BY добавлен для определённого порядка выдачи.