首頁  >  文章  >  資料庫  >  關於mysql中多表查詢詳解

關於mysql中多表查詢詳解

迷茫
迷茫原創
2017-03-26 11:28:281181瀏覽

多表查詢
  1. 分類:
    * 合併結果集(了解)
    * 連結查詢
    * 子查詢

#合併結果集
  * 要求合併的表中, 列的型別和列數相同
  * UNION,移除重複行
##  * UNION ALL,不移除重複行#

 SELECT * FROM cd/*cd表*/UNION ALLSELECT * FROM ab;/*ab表*

連結查詢
  1. 分類
    * 內連結
    * 外連結
      > 外部連接
      > 全外連接(MySQL不支援)
    * 自然連接(屬於簡單化方式)


  2.內部連接
  2.內部連接#    * 方言:
SELECT * FROM 表1 別名1, 表2 別名2 WHERE 別名1.xx=別名2.xx    * 標準:SELECT * FROM 表1 別名1 INNER JOIN
表2 別名2# ON 別名1.xx=別名2.xx    * 自然:SELECT * FROM
表1 別名1 NATURAL JOIN 表2 別名2

   * 內連接查詢出的所有記錄都符合條件。
  ##  3. 外連結    * 左外#: SELECT * FROM 表1 別名1
LEFT OUTER JOIN 表2 別名2 ON 別名1.xx=別名2.xx
#      > 左表記錄無論是否符合條件都會查詢出來,而右表只有符合條件才能出來。左表不符合條件的記錄,右表部分皆為NULL    * 左外自然SELECT * FROM 表1 別名1
NATURAL LEFT OUTER JOIN 表2 別名2 ON 別名1.xx=別名2.xx#    * 右外#:SELECT * FROM 表1 別名1
RIGHT OUTER JOIN 表2 別名2 ON 別名1.xx=別名2. xx
      > 右表記錄無論是否符合條件都會被查詢出來,而左表只有符合條件才能出來。右表不符合條件的記錄,其左表部分皆為NULL    * 右外自然SELECT * FROM 表1 別名1
NATURAL RIGHT OUTER JOIN 表2 別名2 ON 別名1.xx=別名2.xx

    * 全連結:可以使用UNION來完成全連結


子查詢  :查詢中有查詢(查看select關鍵字的個數! ##    * from後面存在(多行多列)
  2.條件   
* (***)單行單列:
SELECT * FROM 表1 別名1 WHERE 欄位1 [=、>、f539a70d3ea090bac4faa80192f58ccc=、<=、!=] (SELECT 欄位FROM 表2 別名2 WHERE 條件)
    * (**)多行單列:SELECT * FROM 資料表1 別名1 WHERE 欄位1 [IN, ALL, ANY]
(SELECT 欄位FROM 表2 別名2 WHERE 條件)    * (*)單行多列:SELECT * FROM 表1 別名1 WHERE (列1,列2) IN (SELECT 列1, 列2 FROM 表2 別名2 WHERE 條件)
    * (***)多行多列: SELECT * FROM 表1 別名1 , (SELECT ....) 別名2 WHERE 條件

以上是關於mysql中多表查詢詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn