首页 > 数据库技术 > 详细

Oracle中 in、exists、not in,not exists的比较

时间:2018-02-07 13:05:21      阅读:175      评论:0      收藏:0      [点我收藏+]

最基本的区别:

  • in 对主表使用索引
  • exists 对子表使用索引
  • not in 不使用索引
  • not exists 对主子表都使用索引

写法:

  • exist的where条件是: "...... where exist (..... where a.id=b.id)"
  • in的where条件是: " ...... where id in ( select id .... where a.id=b.id)"

BUG【要特别注意】:

这是用来举例的表

技术分享图片

IN【正常】、NOT IN【不正常】的情况

IN【正常】

技术分享图片

实际转换为执行的SQL等价于

技术分享图片

NOT IN【不正常】
技术分享图片

实际转换为执行的SQL等价于

技术分享图片

修改SQL

技术分享图片

纯手打:麻烦点下推荐支持原创 ((o(^_ ^)o))

Oracle中 in、exists、not in,not exists的比较

原文:https://www.cnblogs.com/zhuziyu/p/8425845.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!