谈NOT IN和Exists

Select count(1)
    From eemployee
    where status=1
    and eid not in (select eid from CBENEFIT_STATUS)

居然一条记录都没有?

是因为
select eid from CBENEFIT_STATUS 中eid为空

解决方法:

    1/ 改为select eid from CBENEFIT_STATUS where eid is not null    --  where eid is not null

    Select count(1)
        From eemployee
        where status=1
        and eid not in (select eid from CBENEFIT_STATUS where eid is not null)

    2/ select * from table1 A where not exists (SELECT * FROM table2 B where B.col1=A.col1) 

    Select count(1)
        From eemployee a
        where status=1
        and not exists (select 1 from CBENEFIT_STATUS b where a.eid = b.eid)

参考网址:
http://x-spirit.iteye.com/blog/615603
时间: 2024-10-19 22:40:27

谈NOT IN和Exists的相关文章

转【】浅谈sql中的in与not in,exists与not exists的区别_

浅谈sql中的in与not in,exists与not exists的区别 1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表大小相当,那么用in和exists差别不大:如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表) select * from A where cc in(sele

浅谈sql中的in与not in,exists与not exists的区别

1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的.如果查询的两个表大小相当,那么用in和exists差别不大:如果两个表中一个较小一个较大,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表) select * from A where cc in(select cc from B) -->效率低,用到了A表上cc列的索引:sele

再谈MySQL全库备份

再谈MySQL全库备份 简介 Part1:写在最前 在很早之前,我写过一个MySQL生产库全库备份脚本,今天有同事问我是不是要再加一个-R参数来备份存储过程,理由的话是由于mysqldump --help中 关于存储过程的默认备份是false. routines                          FALSE MySQL生产库全库备份脚本 http://suifu.blog.51cto.com/9167728/1758022 实战 Part1:写在最前 我备份一般就三个参数 --s

略谈SQL中的存储过程

对于数据库,一直在增,删,查,改这四个操作中转悠徘徊,没去想太多数据其他的东西.最近发现数据库中等待发现的,等待学习的,等待挖掘的东西太多了.我一直没去搞清楚游标,存储过程以及触发器等等这些知识概念,从没有想过数据库的优化工作和代码简化工作. 之前写了一篇关于数据库的触发器,这一篇主要谈一下数据库的存储过程. 首先SQL Server支持5种类型的存储过程: 系统存储过程,本地存储过程,临时存储过程,远程存储过程,扩展存储过程 1.系统存储过程:由系统提供的存储过程,可以作为命令执行各种操作.系

胖虎谈ImageLoader框架(四)

前言 从学校出来的这半年时间,发现很少有时间可以静下来学习和写博文了,为了保持着学习热情,我希望自己抽出一部分时间来写一些Android框架源码阅读后的理解系列博文. 期许:希望可以和大家一起学习好此框架,也希望大家看博文前最好是先了解下框架的基本使用场景和使用方法,有什么问题可以留言给我,交流学习. 当然,再好的博文,也不如自己看一遍源码! 这次为大家带来的是<胖虎谈ImageLoader框架>系列,分析优秀的框架源码能让我们更迅速地提升,大家共勉!! 源码包下载地址:http://down

io流浅谈

IO流浅谈 在这篇文章里,我会分别和大家聊字节流和字符流 一字节流 File     File:文件和目录(文件夹)路径名的抽象表示形式.       File的构造方法:    File(String pathname):把一个路径名称封装成File对象    File(String parent, String child):把一个父路径和一个子路径封装成一个File对象    File(File parent, String child):把一个父路径File对象和一个子路径封装成一个Fi

海量数据处理第二谈-----位图BitMap

位图的概念: 在C++中,位图是以位来表示整数的结构,普通的整数一个数需要用4个字节来表示,我们可以换种思想,在整个整数的集合范围内,某个整数存在与否,只有两种情况,在或者不在,那么,我们可以考虑只用一个bit位,来表示该整数存在的状态,从而达到节省内存的目的. 位图实例分析: 给一个实际的例子,给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中 我们可以简单计算一下,40亿个整数全部放到内存,需要160亿个字节,粗略计算,大致

谈数据库的性能优化

这篇文章是我花了很多时间写出来的,曾经发表在javaeye论坛上,今天居然不见了,幸好网上有人转载这篇文章,没办法,只好再一份在博客里.这个是我以前写给我部门的一个技术心得,鄙人才疏学浅,知道javaeye高人很多,如果我写的不对的地方,欢迎指教. 我靠这么多关键字过滤啊,"fapiao"也成了关键字 1:前言 数据库优化是一个很广的范围,涉及到的东西比较多,并且每个特定的数据库,其具体的优化过程也是不一样的.因为优化的很大一部分最终都要跟具体的数据库系 统细节打交道,在此不可能针对所

浅谈sql优化

问题的发现:      菜鸟D在工作的时候发现项目的sql语句很怪,例如 : select a.L_ZTBH, a.D_RQ, a.VC_BKDM, (select t.vc_name from tbkxx t where t.vc_code = a.vc_bkdm) vc_name, a.VC_BZ, a.L_SCLB, a.EN_ZS, a."ROWID", s."ROWID",--冗余列 decode(nvl(a.l_cjsl, 0), 0, 0, round