Использование базы данных Northwind = 2 таблицы = заказы и клиенты. Необходимо получить компании, разместившие заказ в 1997 году (OrderDate).
Данные таблицы заказов:
OrderID CustomerID EmployeeID OrderDate RequiredDate ShippedDate ShipVia Freight ShipName ShipAddress ShipCity ShipRegion ShipPostalCode ShipCountry
Данные таблицы клиентов:
CustomerID CompanyName ContactName ContactTitle Address City Region PostalCode Country Phone Fax
Я выполнил 2 запроса: один - с внутренним соединением, а другой - с дополнительным запросом. Запрос внутреннего соединения дает результат 408 строк, а SubQuery дает результат 86 строк. Я чувствую, что подзапрос Группирует CustomerID вместе. Не уверен, какой запрос подходит для получения компаний, разместивших заказ в 1997 году.
Запрос INNER JOIN
Select a.OrderID, a.CustomerID, b.CompanyName,a.OrderDate
from Orders a
inner join Customers b on a.CustomerID = b.CustomerID
where a.OrderDate between '1997-01-01' AND '1997-12-31'
SUB запрос
SELECT CustomerID, CompanyName
FROM Customers
WHERE CustomerID IN (SELECT CustomerID
FROM Orders
WHERE OrderDate BETWEEN '1997-01-01' AND '1997-12-31');
Я оттачиваю свои навыки SQL и на практике использовал базу данных Northwind, поэтому хотел бы знать, какой запрос является правильным, чтобы ответить на вопрос.