多表查詢
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中文網其他相關文章!