Sql Oracle分层查询执行步骤
以下是文档: 以下是它描述的执行顺序:Sql Oracle分层查询执行步骤,sql,oracle,hierarchical-query,Sql,Oracle,Hierarchical Query,以下是文档: 以下是它描述的执行顺序: 将计算联接(如果存在) 首先,是否指定联接 在FROM子句中或在WHERE中 子句谓词 连接条件为 评估 任何剩余的WHERE条款 谓词被计算 我的问题是,这是第一部分。从上面可以应用于嵌套查询。例如,如果我有: select * from foo where exists (select 'x' from bar where bar.foo_id = foo.foo_id start with b
select * from foo
where exists (select 'x' from bar
where bar.foo_id = foo.foo_id
start with bar.id is null
connect by prior bar.id = bar.parent_id)
where子句中的联接是立即执行的,还是因为在此上下文中foo.foo_id实际上是一个单值,所以它是在执行其余单值条件限制的第3部分中执行的?您发布的是一个相关子查询 因为没有连接-将执行步骤2和3: 2) 已评估连接方式条件。
3) 计算任何剩余的WHERE子句谓词