首页 新闻 搜索 专区 学院

oracle高级查询中的exists查询

0
悬赏园豆:10 [已解决问题] 解决于 2015-12-31 11:07
现有以下查询语句: 
  select * from book where exists(
                            select * from borrow where book.bookid = borrow.bookid and             rdate is null);
 
    如果子查询只是返回一个真假值,当返回真值时,where条件是否就相当于不存在?上述exists查询语句和  select * from book; 又有什么区别?
北国丶风光的主页 北国丶风光 | 初学一级 | 园豆:193
提问于:2015-12-30 17:27
< >
分享
最佳答案
0

当返回真值时select * from book才会查到数据 当返回假值时查到的数据为空

收获园豆:10
oracle小菜鸟 | 菜鸟二级 |园豆:212 | 2015-12-31 10:40

那么当返回真值时,select * from book where true不就相当于select * from book 了吗?为什么结果会不一样呢?

北国丶风光 | 园豆:193 (初学一级) | 2015-12-31 10:49

@北国丶风光:  因为有where book.bookid = borrow.bookid and rdate is null 这个条件啊 查到的数据是在这个范围内的

oracle小菜鸟 | 园豆:212 (菜鸟二级) | 2015-12-31 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册