Sobes.tech
Назад к вопросам
Middle
4

Нужно вывести клиентов из таблицы 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);

Компании, где спрашивали
Лига Цифровой ЭкономикиЛига Цифровой Экономики

Ответ от нейросети

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