mysql求差集的方法:1、使用not exists来筛选两表的差集;2、通过LEFT JOIN连接后所产生空字段值来筛选两表的差集。

本文操作环境:windows7系统、mysql8.0版、Dell G3电脑。
mysql怎么求差集?
mysql如何查询两个字段数不同的表中数据不一致的记录
一般可用NOT EXISTS(非存在子句)或 LEFT JOIN左(右)连接后所产生空字段值来筛选两表的差集
1、NOT EXISTS
not exists在比对字段有可利用的索引时,其运行效率是非常高,但是如果没有索引的情况下运行在大数据表时,其运行效率极差,这时应避免使用它
GAIPPT
AI PPT制作和美化神器
1215 查看详情
SELECT * FROM smd_employee t1 WHERE NOT EXISTS ( SELECT 1 FROM asd_user_account t2 WHERE t2.u_phone = t1.employee_phone );
2、LEFT JOIN
用左(右)连接来求差集,由于需要实施两表连接会导致笛卡尔效应其输出集的记录行可能会增多,
若果不是一对一或一对多,我们应该将多对多的情况处理成多对一后才进行连接,否则输出的记录集可能不正确。
SELECT a.* FROM smd_employee a LEFT JOIN asd_user_account b ON b.u_phone = a.employee_phone WHERE b.u_phone IS NULL;
求差集的两种方法,有索引可利用时,not exists的效率要高于left join,反之left join效率更好
【相关推荐:mysql视频教程】
以上就是mysql怎么求差集的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/764617.html
微信扫一扫
支付宝扫一扫