1. 程式人生 > >mysql資料庫中的多表查詢

mysql資料庫中的多表查詢

在資料查詢的應用中,我們經常會遇到需要查詢的資料不在同一張表的情況,這時就要用到多表查詢。
多表查詢主要方式為連線查詢和聯合查詢。

連線查詢:
連線就是指兩個或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語句中的欄位結果一樣,數目一樣,結果才有意義