Back to questions
Лига Цифровой Экономики
Middle
3
Нужно вывести клиентов из таблицы Customers, у которых есть хотя бы один заказ в таблице Orders. Какой запрос выполнит это корректно? SELECT * FROM Customers WHERE id = (SELECT customer_id FROM Orders); SELECT * FROM Customers c JOIN Orders o ON c.id = o.customer_id; SELECT * FROM Customers, Orders WHERE Customers.id = Orders.id; SELECT * FROM Customers WHERE id IN (SELECT customer_id FROM Orders);
Companies where asked
Answer from AI
sobes.tech AI
Корректный запрос для вывода клиентов из таблицы Customers, у которых есть хотя бы один заказ в таблице Orders, следующий:
SELECT * FROM Customers WHERE id IN (SELECT customer_id FROM Orders);
Объяснение:
- Первый вариант с
=не подходит, так как подзапрос возвращает множество значений, а=ожидает одно. - Второй вариант с JOIN вернёт клиентов с заказами, но при этом дублирует клиентов, если у них несколько заказов.
- Третий вариант с
WHERE Customers.id = Orders.idнекорректен, так как сравниваются разные поля (id клиента и id заказа).
Использование IN с подзапросом — простой и понятный способ получить всех клиентов, у которых есть заказы.