sql not in

1、select  count(user_id) from log_2015_01_15 where server='server5' and category='register' and f1=0 and user_id  not in (select user_id from log_2015_01_15 where server='server5' and category='register' and f1=1 ) ;
2、select  count(user_id) from log_2015_01_15 l where server='server5' and category='register' and f1=0 and not exists (select t.user_id from log_2015_01_15 as  t where t.server='server5' and t.category='register' and t.f1=1 and t.user_id=l.user_id );
数据不重复,一个user有最多2条数据,f1=0和f1=1。
目的是查询出f1=0的人没有出现f1=1的数据,第二个sql结果正确,第一个结果不对,出现了f1=0且有f1=1的,不知道为什么,把第一个sql里面的内查询查询出结果后放进去,是正确的。

猜你喜欢

转载自xdlbdy.iteye.com/blog/2184935
SQL