zoukankan      html  css  js  c++  java
  • Mysql--7种Join查询

    0.sql的执行顺序
    手写顺序

    机读顺序

    总结

    ①From:对from左边的表和右边的表计算笛卡尔积,产生虚拟表c1
    ②On:对c1中的数据进行on过滤,只有符合过滤条件的数据记录才会记录在虚拟表c2中
    ③Join:若指定了连接条件(left、right),主表中的未匹配的行就会作为外部行添加到c2中,生成虚拟表c3
    ④Where:对虚拟表c3中的数据进行条件过滤,符合过滤条件的记录插入到虚拟表c4中
    ⑤Group by:根据group by子句中的列,对c4中的记录进行分组操作,生成c5
    ⑥Having:对虚拟表c5中的记录进行having过滤,符合筛选条件的记录插入虚拟表c6中
    ⑦Select:执行select操作,选择指定的列,插入到虚拟表c7中
    ⑧Distinct:对c7中的数据去重,生成虚拟表c8
    ⑨Order by:对虚拟表c8中的数据按照指定的排序规则进行排序,生成虚拟表c9
    ⑩Limit:取出指定的记录,产生虚拟表c10,将结果返回
    1.join图

    2.数据准备

    ①C、Z两表共有(交集部分)
    Select * from tbl_emp inner join tal

    ②C、Z共有+C的独有

    ③ C、Z共有+Z的独有

    ④C的独有

    ⑤Z的独有

    ⑥C的独有+Z的独有

    ⑦AB全有

  • 相关阅读:
    java程序高CPU,如何直接定位(linux系统下命令行操作)
    HashMap源码解读(jdk1.8)
    mysql索引原理
    redis常见问题
    Bitmap算法
    list遍历时删除的坑
    接口和抽象类有什么区别?各在什么场景下使用?
    记录BigInteger犯过的一个错误
    CentOS7切换源
    map遍历性能记录
  • 原文地址:https://www.cnblogs.com/rootcz/p/9536653.html
Copyright © 2011-2022 走看看