将一个外部选择行变量传递给oracle中的内部选择

sur*_*ajz 2 sql oracle

如何在oracle中将外部选择行变量传递给内部选择,这里是一个示例查询(其他外部联接已被删除.此查询将在应用程序的生命周期中加载1次).此查询有效

select  l5.HIERARCHY_ID,
    (select wm_concat(isbn) isbns from (
        select  op.isbn from oproduct op
        LEFT JOIN  assignment ha on  op.r.reference = ha.reference
        where ha.hierarchy_id =  '100589'))isbns 
from level l5 where l5.gid = '1007500000078694'
Run Code Online (Sandbox Code Playgroud)

但是当我改变内部选择的where子句时

where ha.hierarchy_id =  '100589'))isbns 
to
where ha.hierarchy_id =  l5.HIERARCHY_ID))isbns  
Run Code Online (Sandbox Code Playgroud)

我收到以下错误ORA-00904:"L5"."HIERARCHY_ID":无效的标识符

JHS*_*JHS 5

你不能传递第二级的值SELECT.

例如 -

SELECT value1  -- 1st level select
FROM (
      SELECT value2  -- 2nd level select
      FROM ( 
            SELECT value3  -- 3rd level select.
Run Code Online (Sandbox Code Playgroud)

您可以将第1级的值SELECT仅用于第二级SELECT.类似地,第二级SELECT中的值仅可用于第1级SELECT,第3级SELECT不可用.