您的位置:首页 > 数据库

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
emailval
1a
2b
2b
3c
3c
3c
4d
4d
4d
4d
log
email
1
3
3
5
5
5
5
5
运行结果
emailval
2b
2b
4d
4d
4d
4d
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: