乐趣区

关于oracle:oracle子查询关联子查询与非关联子查询的区别

关联子查问和非关联子查问

1、关联子查问

  • 阐明

    外层查问的每一行数据,外部查问都会再查问一次。

<br/>

  • 特点

    1、子查问不能独自运行,是和外查问相干的

    2、先执行外层查问,再执行内层查问

<br/>

  • 示例

    如下例,在子查问中用到了外层查问的字段(t.deptno),且不能独自运行 (因为用到了外层查问的字段)

select t.*, t.rowid  from dept t where exists (select 1 from emp e where e.deptno = t.deptno); 

<br/><br/>

2、非关联子查问

  • 阐明

    子查问先将值查问进去,而后再返回给外层查问。

<br/>

  • 特点

    1、子查问能独自运行

    2、先执行内层查问,再执行外层查问

<br/>

  • 示例

    如下所示,子查问的语句能够独自执行 –》select max(e.deptno) from emp e

select t.*, t.rowid  from dept t where t.deptno = (select max(e.deptno) from emp e); 

<br/>

退出移动版