标签:解释 查询 str select 不一致 order by number 条件 是什么
比如有如下的sql查询语句,其中的执行顺序是什么样子的呢?
select * from help_topic as t join help_relation as r on t.help_topic_id = r.help_topic_id
where t.help_topic_id < 200
having r.help_topic_id<150
order by t.help_topic_id asc;
简单来说,上述语句是我们所写的SQL语句,这个是人理解的顺序,当然对于初学者,这个顺序是有点绕的,机器执行的顺序和我们手写SQL的顺序是不一致的!其执行顺序如下:
1. FROM <left_table>
2. ON <join_codition>
3. <join_type> JOIN <right_table>
4. WHERE <where_condition>
5. GROUP BY <group_by_list>
6. HAVING <HAVING_condition>
7. SELECT
8. DISTINCT <select_list>
9. ORDER BY <order_by_condition>
10. LIMIT <limit_number>
总体来说,MYSQL的查询语句,可以分为三个部分:
总体来说,MYSQL的查询语句,可以分为三个部分:
select * from help_topic as t join help_relation as r on t.help_topic_id = r.help_topic_id;
select * from help_topic as t join help_relation as r on t.help_topic_id = r.help_topic_id where t.help_topic_id < 200;
select * from help_topic as t join help_relation as r on t.help_topic_id = r.help_topic_id where t.help_topic_id < 200 having r.help_topic_id < 150 order by t.help_topic_id asc;
正如上述描述,SQL查询就可以分成这么三个步骤。形象的解释如下图所示:
标签:解释 查询 str select 不一致 order by number 条件 是什么
原文地址:https://www.cnblogs.com/prayjourney/p/12577285.html