tab_1
tab_2
代码执行顺序
(7) SELECT
(8) DISTINCT <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) HAVING <having_condition>
(9) ORDER BY <order_by_condition>
(10) LIMIT <limit_number>
执行FROM 形成笛卡尔积
执行ON过滤
添加外部行
LEFT OUTER JOIN
把左表记为保留表,得到的结果为(也就是我们查询得到的结果 VT_3):
把右表记为保留表,得到的结果为:
FULL OUTER JOIN
把左右表都作为保留表,得到的结果为:
执行WHERE过滤
执行GROUP BY分组
执行HAVING过滤
SELECT查找
执行DISTINCT子句
创建一张内存临时表,当内存不够的时候,就需要存入硬盘
这张表会比原先的虚表多一个唯一的索引,以此来去除重复的数据
执行ORDER BY子句
执行LIMIT子句