子查询和相关子查询的区别
下面这段SQL查询是普通查询还是关联子查询?
SELECT UserID,
FirstName,
LastName,
DOB,
GFName,
GLName,
LoginName,
LoginEffectiveDate,
LoginExpiryDate,
Password,
Email,
ReportingTo,
Mobile,
CommunicationPreference,
IsActive
FROM (SELECT row_number() OVER (ORDER BY FirstName) AS Row,
UserID,
FirstName,
LastName,
DOB,
GFName,
GLName,
LoginName,
LoginEffectiveDate,
LoginExpiryDate,
Password,
Email,
ReportingTo,
Mobile,
CommunicationPreference,
IsActive
FROM DivakarUserRegistration) T
另外,谁能说说这两者之间的区别?
43
3
上面的例子不是共同相关的子查询。它是衍生表/内部视图,因为它是FROM条款中的一个子查询。
一个Corelated Sub-query应该引用它的父(主查询)表。例如:通过联合相关子查询找到第N个最高工资。
相关子查询是一个使用外部查询值的子查询。在这种情况下,内部查询必须为外部查询的每一行执行。
请看这里的例子 http://en.wikipedia.org/wiki/Correlated_subquery
简单子查询不使用外部查询的值,只计算一次。
相关的子查询示例 -
查询查找所有工资高于本部门平均水平的员工
我想下面的解释会对你有所帮助。 这两者之间的区别。 相关子查询 "是指被主查询(外部查询)引用的内部查询,这样内部查询被认为是被重复删除的。
非相关子查询 "是一个独立于外部查询的子查询,它可以自己执行而不依赖主要的外部查询。
普通子查询 "不依赖于外部查询。