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


本文轉載自:https://www.cnblogs.com/mcad/archive/2015/01/06/4207033.html 作者:mcad 轉載請注明該聲明。

基礎的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子句中的前兩個表,執行笛卡爾積運算。運算結果 形成一個結果集合。

clipboard

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

clipboard[1]

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

clipboard[2]

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM