程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 帶Left Join的SQL語句的執行順序,joinsql

帶Left Join的SQL語句的執行順序,joinsql

編輯:MySQL綜合教程

帶Left Join的SQL語句的執行順序,joinsql


基礎的SQL執行順序



SQL語句執行的時候是有一定順序的。理解這個順序對SQL的使用和學習有很大的幫助。

1.from

       先選擇一個表,或者說源頭,構成一個結果集。

2.where

       然後用where對結果集進行篩選。篩選出需要的信息形成新的結果集。

3.group by

       對新的結果集分組。

4.having

      篩選出想要的分組。

5.select

     選擇列。

6.order by

     當所有的條件都弄完了。最後排序。

 

帶連接的SQL語句執行順序(以Left Join為列)

 

我的理解是這樣,SQL語句中無論是否連接的其他表。 無論如何都要先形成一個結果集。後面的順序不變!

只不過使用連接時,形成結果集合的方式略有不同。這個和 Left Join的實現原理有關。

select a.name,b.name

from T_left a            //1

Left Join T_Right b   //3

ON  a.id = b.id         //2

使用Left Join 形成結果集的方式是這樣的。

1. 首先對From子句中的前兩個表,執行笛卡爾積運算。運算結果 形成一個結果集合。

2. ON按條件,對上邊的結果集,進行篩選,形成新的結果集。

3. 以左連接為例,如果T_left中存在未匹配到的行。那麼把T_left中的這幾行以外部行的形式加到上邊的結果集中形成新的結果集。

4. 如果存在多張表,重復1~3過程!

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved