Oracle中 inexistsnot in,not exists的比较

Posted Talk is cheap. Show me the cod

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中 inexistsnot in,not exists的比较相关的知识,希望对你有一定的参考价值。

最基本的区别:

  • 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中 inexistsnot in,not exists的比较的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库关闭异常(ORA-01089: immediate shutdown in progress - no operations are permitted)的解决方法

Using Call_Form in Oracle D2k

Linux下oracle数据库spfile参数配置文件丢失问题解决,“ORA-32001: write to SPFILE requested but no SPFILE is in use“问题处理

Oracle

you have no oracle clients installed

Oracle not in查不到应有的结果(NULLINEXISTS详解)