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)的解决方法
Linux下oracle数据库spfile参数配置文件丢失问题解决,“ORA-32001: write to SPFILE requested but no SPFILE is in use“问题处理