今天我了解了SQL Server的一个特性,称为关联查询和非关联查询。然后我想到了某个问题:
SQL Server 中的关联查询和子查询有什么区别?SQL Server 中是否存在关联子查询和非关联子查询?
如果是的话,这和我们应该在哪里使用其中之一?如果可以的话,用简单的插图来解释这个概念。
我想知道。
今天我了解了SQL Server的一个特性,称为关联查询和非关联查询。然后我想到了某个问题:
SQL Server 中的关联查询和子查询有什么区别?SQL Server 中是否存在关联子查询和非关联子查询?
如果是的话,这和我们应该在哪里使用其中之一?如果可以的话,用简单的插图来解释这个概念。
我想知道。
相关子查询是主外部查询引用的内部子查询,因此内部查询被认为是重复执行的。
例子:
USE DatabaseName;
GO
SELECT e.EmpID
FROM HumanResources.Emp e
WHERE e.ContactID IN
(
SELECT c.ContactID
FROM Person.Contact c
WHERE MONTH(c.ModifiedDate) = MONTH(e.ModifiedDate)
)
GO
非相关子查询是独立于外部查询的子查询,它可以在不依赖主外部查询的情况下自行执行。
例子:
USE DatabaseName;
GO
SELECT e.EmpID
FROM HumanResources.Emp e
WHERE e.ContactID IN
(
SELECT c.ContactID
FROM Person.Contact c
WHERE c.Title = 'Mr.'
)
GO
更多在链接。