Oracle的子查询

Oracle的子查询分为两种:一种是相关子查询,一种是非相关子查询。主要区别就是相关子查询用到了外查询结果的字段。一般来说,相关子查询不能单独运行,非相关子查询可以单独运行。


相关子查询的计算步骤:

  1. 扫描外查询的第一条记录

  2. 扫描子查询,并将第一条记录的对应值传给子查询,由此计算出子查询的结果

  3. 根据子查询的结果,返回外查询的结果。

  4. 重复上述动作,开始扫描外查询的第二条记录,第三条记录,直至全部扫描完毕


  • 相关子查询
select * from t1 where (select id from t2 where t2.cis = t1.cis)
  • 非相关子查询
select * from t1 where cis in (select cis from t2)

猜你喜欢

转载自blog.csdn.net/jjkang_/article/details/81292135
今日推荐