先笛卡尔积, 然后再on过滤, 如果join是inner的, 就继续往下走, 如果join 是left join, 就把on过滤掉的左主表中的数据再添加回来; 然后再执行where里的过滤; on中不是最终过滤, 因为后面left join还可能添加回来, 而where才是最终过滤. 只有当使用外连接(left, right)时, on 和 where 才有这个区别, 如果...
#FROM ...,...-> ON -> (LEFT/RIGNT JOIN) -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT 我们来简单分析一下 一、select是先执行FROM这一步的,如果是多表连接查询,还会分出以下几个步骤 1. 通过join进行表连接求得笛卡尔积,相当于得到虚拟表(virtual table)表...
select [distinct] 字段或表达式列表 from 表名 join(left join, right join) on 连接条件 where 筛选条件 group by 字段列表 having 字段列表 order by 字段列表 limit <m,n> 1. 2. 3. 4. 5. 6. 7. 二、SELECT 语句的执行顺序 SELECT 语句中各个子句按照下面的顺序执行。每个子句执行后都会产生一个中...
SELECT语句 - 执行顺序: ①FROM ②ON ③JOIN<join, left join, right join...> ④WHERE ⑤GROUP BY ⑥HAVING ⑦SELECT ⑧DISTINCT ⑨ORDER BY ⑩LIMIT
然而其执行顺序却是: FROM<表名> # 笛卡尔积 ON<筛选条件> # 对笛卡尔积的虚表进行筛选 JOIN<join, left join, right join...> <join表> # 指定join,用于添加数据到on之后的虚表中,例如left join会将左表的剩余数据添加到虚表中 ...
1.1 sql语句的执行顺序 image.png FROM<left_table>ON<join_condition><join_type>JOIN<right_table>WHERE<where_condition>GROUPBY<group_by_list>HAVING<having_condition>SELECTDISTINCT<select_list>ORDERBY<order_by_condition>LIMIT<limit_number> 1.2 频繁使用的select语句 ...
它在查询的最后阶段执行,根据指定的列或表达式对结果进行升序或降序排序。将 T9 中的行按 ORDER BY 子句排序,生成一个游标 T10,而不是虚拟表,在这一步中是第一个也是唯一一个可以使用 select列表中别名的步骤。 十一、样列SQL (8) SELECT (9) DISTINCT (1) FROM <left_table> (3) <join_type> JOIN...
select*from user left join user_detail on user.user_id=user_detail.user_detail_uid union select*from user right join user_detail on user.user_id=user_detail.user_detail_uid; 使用union 连接的多条sql,每个 sql 查询出来的结果集的字段名称要一致**【只需要名称一致即可,顺序可以不同,但建议相同】...
简单了解MySQLSELECT执行顺序 简单了解MySQLSELECT执⾏顺序 SELECT语句的完整语法为:(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_...
另外:一个查询语句各个部分的执行顺序: --8) SELECT (9) DISTINCT (11) <TOP_specification> <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 {CUB...