mysql資料庫中的多表查詢
阿新 • • 發佈:2019-01-05
在資料查詢的應用中,我們經常會遇到需要查詢的資料不在同一張表的情況,這時就要用到多表查詢。
多表查詢主要方式為連線查詢和聯合查詢。
連線查詢:
連線就是指兩個或2個以上的表(資料來源)“連線起來成為一個數據源”。
表示式語句:from 表1 [連線方式] join 表2 [on 連線條件];
連線的結果可以當作一個“表”來使用。常用有以下幾種連線方式:
交叉連線:沒有on條件的查詢,交叉連線所得到的結果通常為笛卡爾積,
內連線:語句表示式:from 表1 join 表2 on 表1.欄位1=表2.欄位2;含義:找出(過濾)在交叉連線的結果表中的表1的欄位1的值等於表2的欄位2的值的那些行。
左連線:以左邊那張表為主,語句表示式:from 表1 left [outer] join 表2 on 連線條件。含義:內連線的結果基礎上,加上左邊表中所有不符合連線條件的資料,相應本應放右邊表的欄位的位置就自動補為“null”值。
右連線:以右邊那張表為主,語句表示式:from 表1 right[outer] join 表2 on 連線條件。含義:與左連線相反
全連線:語句表示式:from 表1 full [outer] join 表2 on 連線條件;含義:相當於內連線
聯合查詢:
聯合查詢就是將兩個select語句的查詢結果“層疊”到一起成為一個“大結果”。
語句表示式:
(select 語句1)
union
(select 語句2)
注意:兩個查詢結果的能夠進行“聯合”的先覺條件是:結果欄位數相等。
通常,兩個select語句中的欄位結果一樣,數目一樣,結果才有意義