SQL替换NOT IN的几种方法总结
2014-02-08 16:41
357 查看
OT IN很好用,但效率很低,共有如下几种方法可以替换,我用几十万数据的测试,最后一种效率是最好的
select email from email where email not in(select distinct email from log);
SELECT email FROM email WHERE not exists (select email from log where log.email=email.email);
SELECT email.email, email.val FROM (SELECT email.*, log.email FROM email LEFT JOIN log ON email.email=log.email) AS res WHERE res.log.email is null;
测试表结构和数据如下
email
log
运行结果
select email from email where email not in(select distinct email from log);
SELECT email FROM email WHERE not exists (select email from log where log.email=email.email);
SELECT email.email, email.val FROM (SELECT email.*, log.email FROM email LEFT JOIN log ON email.email=log.email) AS res WHERE res.log.email is null;
测试表结构和数据如下
val | |
---|---|
1 | a |
2 | b |
2 | b |
3 | c |
3 | c |
3 | c |
4 | d |
4 | d |
4 | d |
4 | d |
1 |
3 |
3 |
5 |
5 |
5 |
5 |
5 |
val | |
---|---|
2 | b |
2 | b |
4 | d |
4 | d |
4 | d |
4 | d |
相关文章推荐
- SQL替换NOT IN的几种方法总结
- sql 截取字符串 你会几种方法?我在这给大家小总结一下..
- SQL中实现SPLIT函数几种方法总结(必看篇)
- SQL查询中用replace替换ntext,text字段的各种方法总结
- 在sql语句中替换Not In 的方法
- SQL Server中TEXT/NTEXT字段内容替换方法总结(SQL 2005及以上建议使用VARCHAR(MAX)/NVARCHAR(MAX)代替)
- SQL中实现SPLIT函数几种方法总结(必看篇)
- 在sql语句中替换Not In 的方法
- 在sql语句中替换Not In 的方法
- 把Sql数据转换为业务数据的几种方法
- [组合数]求组合数的几种方法总结
- 总结调用Flash的几种方法
- python的__init__几种方法总结
- js 创建对象的几种方法总结
- Swift-总结单例实现的几种方法
- Oracle常用的SQL方法总结
- 【总结】Oracle sql 中的字符(串)替换与转换
- SQL重复记录查询的几种方法
- iOS: performXXX的几种方法总结:
- android操作XML的几种方法总结