假设一个嵌套查询是这样的:
SELECT *
FROM Table1
WHERE Table1.val in
(
Select Table2.val
from Table2
where Table2.val>3
)
所以我的问题是实际的查询处理器如何评估这个 -
- 他们是否首先评估最内部的查询,暂时存储结果,然后在上层查询中使用它?[如果子查询的结果很大,临时存储可能不够用]
- 或者他们是否为外部查询的每个结果评估外部查询[需要对外部查询进行太多评估]
我是否遗漏了一些东西,它实际上是通过哪种方式实现的?