• 技术文章 >数据库 >mysql教程

    mysql怎么求差集

    藏色散人藏色散人2021-12-01 15:16:06原创8390

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

    php入门到就业线上直播课:进入学习

    本文操作环境:windows7系统、mysql8.0版、Dell G3电脑。

    mysql怎么求差集?

    mysql如何查询两个字段数不同的表中数据不一致的记录

    一般可用NOT EXISTS(非存在子句)或 LEFT JOIN左(右)连接后所产生空字段值来筛选两表的差集

    1、NOT EXISTS

    not exists在比对字段有可利用的索引时,其运行效率是非常高,但是如果没有索引的情况下运行在大数据表时,其运行效率极差,这时应避免使用它

    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怎么求差集的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    千万级数据并发解决方案(理论+实战):点击学习

    Mysql单表千万级数据量的查询优化与性能分析

    Mysql主从原理及其在高并发系统中的应用

    专题推荐:mysql
    上一篇:mysql与mssql的区别是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• mysql in是什么意思• linux 怎么修改mysql的编码• centos mysql 忘记密码怎么办• mysql与mssql的区别是什么
    1/1

    PHP中文网