Подзапросы являются отличным инструментом SQL, позволяющим выполнять сложные запросы к базам данных. В данной задаче мы ищем имена клиентов, разместивших заказы, в таблице 'Orders'.
Верным ответом является следующий запрос:
SELECT Name FROM Customers WHERE CustomerID IN (SELECT CustomerID FROM Orders)
Давайте разберемся, как он работает. Этот запрос состоит из двух частей: основного запроса и подзапроса.
Подзапрос — это вложенный запрос, который выполняется внутри другого запроса. В нашем случае подзапрос (все, что после IN) выглядит так:
SELECT CustomerID FROM Orders
Это простой запрос, который возвращает список всех идентификаторов клиентов (CustomerID), которые разместили заказы в таблице 'Orders'.
Основной запрос выглядит так:
SELECT Name FROM Customers WHERE CustomerID IN ...
Он выбирает имена из таблицы 'Customers' для каждого клиента, ID которого встречается в результате подзапроса. Подставив результаты подзапроса, основной запрос будет искать имена клиентов, которые есть в этом списке.
Таким образом, результатом этого запроса будет список имен всех клиентов, которые разместили хотя бы один заказ в таблице 'Orders'.
Использование подзапросов может быть довольно мощным инструментом при работе с базами данных SQL, но важно понимать, что они могут быть медленными при работе с большими объемами данных из-за того, что каждый подзапрос выполняется отдельно. В таких ситуациях рассмотрите использование операторов JOINS для связи таблиц.