当前位置: 代码迷 >> Sql Server >> 请问not exists的原理
  详细解决方案

请问not exists的原理

热度:75   发布时间:2016-04-27 13:16:41.0
请教not exists的原理
select * from tbpost a where not exists(
select * from tbpost b where 交易类型='0400'  
and a.商户号=b.商户号 and a.交易日期=b.交易日期 and a.流水号=b.流水号 and a.终端号=b.终端号)

select * from tbqc a where exists(select count(1) from tbqc b where a.name=b.name and a.sex=b.sex and a.age=b.age having count(*)=1 )
这都是怎么执行的 能说的越细越好 谢谢。

我个人理解是选执行外面的查询 没查询一行数据 然后用外面查询的数据做条件 去执行exists里面的查询 如果符合条件就 返回数据 不知道是不是这样运行的。  


------解决方案--------------------
SQL code
--显示 对应商户号,交易日期,流水号,终端号相同,且不在交易类型 '0400'范围内的SELECT  *                                               --4、就显示a.*FROM    tbpost aWHERE   NOT EXISTS ( SELECT *                           --3、没找到                       FROM   tbpost b                     WHERE  交易类型 = '0400'                            AND a.商户号 = b.商户号       --1、a对应b来说,b就是对应交易类型 = '0400'的                            AND a.交易日期 = b.交易日期   --2、相同商户号,交易日期,流水号,终端号的                            AND a.流水号 = b.流水号                                   AND a.终端号 = b.终端号 )                                                         --不重复的数据                           SELECT  *                                              --4、就显示a.*FROM    tbqc aWHERE   EXISTS ( SELECT COUNT(1)                       --3、找到了                 FROM   tbqc b                 WHERE  a.name = b.NAME                --1、a与b 相同NAME,sex,age 的信息计数                        AND a.sex = b.sex                        AND a.age = b.age                 HAVING COUNT(*) = 1 )                 --2、只出现一次的
  相关解决方案