常見通用的Join查詢

請保持優秀。發表於2020-12-09

本教程中所使用的資料庫的建表語句都在“MySQL高階教程索引”這篇文章中,點選連結直達:索引&建表語句

摘要:本文主要介紹MySQL常見的join查詢

 

常見通用的Join查詢

 

 

SQL語句執行順序:

  1. FROM:對FROM子句中的左表<left_table>和右表<right_table>執行笛卡兒積,產生虛擬表VT1;
  2. ON: 對虛擬表VT1進行ON篩選,只有那些符合<join_condition>的行才被插入虛擬表VT2;
  3. JOIN: 如果指定了OUTER JOIN(如LEFT OUTER JOIN、RIGHT OUTER JOIN),那麼保留表中未匹配的行作為外部行新增到虛擬表VT2,產生虛擬表VT3。如果FROM子句包含兩個以上的表,則對上一個連線生成的結果表VT3和下一個表重複執行步驟1~步驟3,直到處理完所有的表;
  4. WHERE: 對虛擬表VT3應用WHERE過濾條件,只有符合<where_condition>的記錄才會被插入虛擬表VT4;
  5. GROUP By: 根據GROUP BY子句中的列,對VT4中的記錄進行分組操作,產生VT5;
  6. CUBE|ROllUP: 對VT5進行CUBE或ROLLUP操作,產生表VT6;
  7. HAVING: 對虛擬表VT6應用HAVING過濾器,只有符合<having_condition>的記錄才會被插入到VT7;
  8. SELECT: 第二次執行SELECT操作,選擇指定的列,插入到虛擬表VT8中;
  9. DISTINCT: 去除重複,產生虛擬表VT9;
  10. ORDER BY: 將虛擬表VT9中的記錄按照<order_by_list>進行排序操作,產生虛擬表VT10;
  11. LIMIT: 取出指定街行的記錄,產生虛擬表VT11,並返回給查詢使用者

 

 

常見join查詢:

1.內連線   

  1. 等值連線誒

  2. 非等值連線 

  3. 交叉連線

2.外連線

  1. 左外連線

  2. 右外連結

  3. 全外連線

3.交叉連線

 

瞭解詳情請前往筆記:SQL教程——連線查詢之SQL99標準

 

相關文章