数据库的相关子查询

子查询在其父查询处理前求解,它的执行不依赖于父查询的任何条件,每个子查询仅执行一次,子查询的结果集为父查询的where条件所用,这类查询叫做不相关子查询

但在有的查询中,子查询的执行依赖于父查询的某个条件,子查询不止执行一次。这类子查询的查询条件往往依赖于其父查询的某属性值,称为相关子查询。

在相关子查询中,可使用exists测试查询是否存在返回值。

例如:select eno, ename

      from employee e

      where exists (select * from item where eno=e.eno);

在上例中,子查询不返回任何数据,只产生逻辑值:子查询结果非空,返回值为真(true);否则返回值为假(false)。

执行该相关子查询的过程是:从外查询的关系(employee)中依次取出一个元组,根据它的eno值在内查询中进行检查,若父查询的where子句为真,则此元组放入结果表;若为假,则舍去。这样反复处理,直至父查询关系的元组全部处理完为止。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值