Я работаю над Transact-SQL, Microsoft Azure.
Я пытаюсь понять, почему в некоторых запросах на объединение WHERE
и AND
оба могут использоваться и давать один и тот же результат (или, по крайней мере, в моей базе данных это выглядит как один и тот же результат), а в других запросах where
hasn ' т работает и делает.
Здесь я объединяю 2 таблицы:
select c.customerID, ca.addressID, ca.addressType
from salesLT.customer as c
join salesLT.customerADdress as ca
on c.customerID = ca.customerID
WHERE ca.addressType = 'Main Office'; --WHERE or AND works the same
Это дает мне то, что я искал = только строки из таблицы customerAddress, где типом является «Главный офис». Изменение слова WHERE на AND дает точно такой же результат.
Теперь запрос основан на предыдущем, но я пытаюсь объединить 3 таблицы. Здесь WHERE
не работает, и я должен поставить AND
:
select c.customerId, c.companyName, ca.addressID, ca.addressType, a.addressLine1, a. city
from salesLT.customer as c
join salesLT.customerAddress as ca
on c.customerID = ca.customerID
WHERE ca.addressType = 'Main Office' -- error: incorrect syntax near 'join'
join salesLT.address as a
on ca.addressId = a.addressID;
Если я изменю WHERE
на AND
, это сработает. Зачем? В чем разница между объединением 2 таблиц и 3?
Спасибо