首先,要清楚在一select語句中都會用到哪些關鍵字:
-----------select
-----------from
-----------join
-----------where
-----------group by
-----------having
-----------order by
-----------limit
其次,要知道每執行一步就會生成一個對應的虛拟表:
明白這兩點再看執行的先後順序
1.from語句:不管是什麼SQL語句,都得先知道要在哪張表中操作吧,是以要先執行form語句。然後會生成##虛拟表1##
例如:from user 這時候的##虛拟表1## 就是user表
2.join(連結表):連結兩張或多張表,生成##虛拟表2##
3.where語句:①如果是單表查詢,那麼就沒有join語句,此時where在##虛拟表1##操作,進行過濾,把滿足where條件的資料過濾出來,生成##虛拟表3##
②如果多表查詢,在這個##虛拟表2##中操作,進行過濾,把滿足where條件的資料過濾出來,生成##虛拟表3##
4.group by語句:對滿足where條件的##虛拟表3##進行分組操作,分組完成後,生成##虛拟表4##
5.執行having過濾:對##虛拟表4##進行過濾,但是一般都是用聚合函數,生成##虛拟表5##
6.select語句:這個時候執行語句,select * 或 select id ,name ,password等,都是在##虛拟表5##中進行操作,把需要的字段從##虛拟表5##中提取出來,生成##虛拟表6##
7.order by語句:根據##虛拟表6##中的某個字段進行排序,生成##虛拟表7##
8.limit字句:在##虛拟表7##上操作,從指定位置取出資料,生成##最終表##
總結:form>where>group by>having>select>order by>limit