【问题标题】:Oracle hierarchical query execution stepsOracle分层查询执行步骤
【发布时间】:2010-08-02 16:28:46
【问题描述】:

这是文档:http://download-east.oracle.com/docs/cd/B12037_01/server.101/b10759/queries003.htm

这是它描述的执行顺序:

  1. 评估连接(如果存在) 一、是否指定join 在 FROM 子句中或与 WHERE 子句谓词。
  2. CONNECT BY 条件是 评估。
  3. 任何剩余的 WHERE 子句 评估谓词。

我的问题是,上面的第 1 部分是否适用于嵌套查询。例如,如果我有:

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 部分执行?

【问题讨论】:

    标签: sql oracle hierarchical-query


    【解决方案1】:

    您发布的是相关子查询。

    因为没有 JOIN - 将执行第 2 步和第 3 步:

    2) 评估 CONNECT BY 条件。
    3) 评估任何剩余的 WHERE 子句谓词

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多