У вас есть две таблицы: customers и orders.

Используйте INNER JOIN customers и orders по customers.id = orders.customer_id. Тогда Diana без заказов не попадёт в результат, а у клиентов с несколькими заказами будет несколько строк.

Короткий ответ

Что ответить на собеседовании

Используйте 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 добавлен для определённого порядка выдачи.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее