0.sql的執行順序 手寫順序 機讀順序 總結 ①From:對from左邊的表和右邊的表計算笛卡爾積,產生虛擬表c1 ②On:對c1中的數據進行on過濾,只有符合過濾條件的數據記錄才會記錄在虛擬表c2中 ③Join:若指定了連接條件(left、right),主表中的未匹配的行就會作為外部行添加到c2 ...
0.sql的執行順序
手寫順序
機讀順序
總結
①From:對from左邊的表和右邊的表計算笛卡爾積,產生虛擬表c1
②On:對c1中的數據進行on過濾,只有符合過濾條件的數據記錄才會記錄在虛擬表c2中
③Join:若指定了連接條件(left、right),主表中的未匹配的行就會作為外部行添加到c2中,生成虛擬表c3
④Where:對虛擬表c3中的數據進行條件過濾,符合過濾條件的記錄插入到虛擬表c4中
⑤Group by:根據group by子句中的列,對c4中的記錄進行分組操作,生成c5
⑥Having:對虛擬表c5中的記錄進行having過濾,符合篩選條件的記錄插入虛擬表c6中
⑦Select:執行select操作,選擇指定的列,插入到虛擬表c7中
⑧Distinct:對c7中的數據去重,生成虛擬表c8
⑨Order by:對虛擬表c8中的數據按照指定的排序規則進行排序,生成虛擬表c9
⑩Limit:取出指定的記錄,產生虛擬表c10,將結果返回
1.join圖
2.數據準備
①C、Z兩表共有(交集部分)
Select * from tbl_emp inner join tal
②C、Z共有+C的獨有
③ C、Z共有+Z的獨有
④C的獨有
⑤Z的獨有
⑥C的獨有+Z的獨有
⑦AB全有