Mysq l执行顺序

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两表共有(交集部分)

 ②C、Z共有+C的独有

 ③ C、Z共有+Z的独有

 ④C的独有

 ⑤Z的独有

 ⑥C的独有+Z的独有

 ⑦AB全有

 http://www.manongjc.com/article/8092.html

posted @ 2021-08-19 09:57  Bonnie_ξ  阅读(66)  评论(0编辑  收藏  举报