SQL代码并不是按照编码顺序进行处理,而是按照如下顺序进行:
(8)SELECT (9)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)WITH{CUBE|ROLLUP} (7)HAVING<having_condition> (10)ORDER BY<order_by_list> (11)LIMIT<limit_number>
每个操作都会产生一个虚拟表,这些虚拟表对用户是透明的,只有最后一步生成的虚拟表才会返回给用户。如没有在查询中指定某一字句,则跳过相应的步骤。
----摘自《MySQL技术内幕--SQL编程》
时间: 2024-10-12 04:46:38