【oracle】-子查询:关联子查询与非关联子查询的区别...

关联子查询和非关联子查询

1、关联子查询

  • 说明

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


  • 特点

    1、子查询不能单独运行,是和外查询相关的

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


  • 示例

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

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



2、非关联子查询

  • 说明

    子查询先将值查询出来,然后再返回给外层查询。


  • 特点

    1、子查询能单独运行

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


  • 示例

    如下所示,子查询的语句可以单独执行--》 select max(e.deptno) from emp e

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


你可能感兴趣的:(oracle)