今天我开始了解SQL Server的一个功能,称为相关查询和非相关查询。然后我想到了某个问题:
SQL Server中的corelated和子查询有什么区别? SQL Server中是否存在corleated子查询和非核心子查询?
如果是,那么我们应该使用其中之一的区别?如果可以的话,用简单的插图解释这个概念。
我想知道。
答案 0 :(得分:3)
相关子查询是一个内部子查询,它由主外部查询引用,以便内部查询被视为重复执行。
示例:强>
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
的更多信息