开发中最好使用not exists 取代not in

Posted yangxiaohui227

tags:

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

开发中使用not in可能会存在致命的错误,在子查询中,如果存在空值,not in返回的数据就是空了,如下创建2张数据表:

user表:

技术图片

部门表:

技术图片

现在要查询没有分配到用户的部门有哪些,使用not in,如下(可见返回空值):

技术图片

  使用not exists 结果如下:

    技术图片

 not exisit的用法常见错误写法:

技术图片

 

技术图片

 

 

 

以上是关于开发中最好使用not exists 取代not in的主要内容,如果未能解决你的问题,请参考以下文章

用join取代not in

MySQL atomic insert-if-not-exists 具有稳定的自动增量

Class StatusesTableSeeder does not exist 如何解决

SpringBoot+Thyemleaf开发环境正常,打包jar发到服务器就报错Template might not exist or might not be accessible

Google Chrome 插件开发: 无法建立连接, 接收端不存在. Could not establish connection. Receiving end does not exist

oracle中in,not in和exists,not exists之间的区别