У меня есть 2 таблицы, как показано ниже:
Заказ
Id, Name
Продукт
Id, OrderId, ...
Я хочуотфильтровать все товары по определенному названию заказа.Мой запрос T-SQL:
SELECT o.Id, o.Name, p.Id
FROM Order o
INNER JOIN Product p ON o.Id = p.OrderId
WHERE o.Name = "TEST"
В моей таблице продуктов может быть тысяча строк, поэтому я считаю, что этот SQL сначала объединяет все заказы со всеми продуктами, а затем ко всему объединенному результирующему набору применяется условие WHERE
выберите только те, которые имеют имя TEST.
Будет гораздо лучше, если SQL сначала отфильтрует таблицу Order
по имени "TEST", а затем выполнит объединение только этих заказов вместо всей таблицы.
Итак, вопрос в том, как выполнить WHERE
до JOIN
?