我正在研究 Transact-SQL,Microsoft Azure。我试图理解为什么在某些连接查询中WHERE
,AND
两者都可以使用并给出相同的结果(或者至少在我的数据库中看起来是相同的结果),而在其他查询where
中不起作用并且确实如此。
在这里,我加入了 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 表中类型为“Main Office”的行。将单词 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个表的join有什么区别?谢谢