Join 連接 (SQL Join)
SQL Join (連接) 是利用不同資料表之間欄位的關連性來結合多資料表之檢索。SQL Join是結合多個資料表而組成一抽象的暫時性資料表以供資料查詢,在原各資料表中之紀錄及結構皆不會因此連接查詢而改變。
這是一個客戶資料表「customers」:
| C_Id | Name | City | Address | Phone |
|---|---|---|---|---|
| 1 | 張一 | 台北市 | XX路100號 | 02-12345678 |
| 2 | 王二 | 新竹縣 | YY路200號 | 03-12345678 |
| 3 | 李三 | 高雄縣 | ZZ路300號 | 07-12345678 |
而這是產品訂單的資料表「orders」:
| O_Id | OrderNo | C_Id |
|---|---|---|
| 1 | 2572 | 3 |
| 2 | 7375 | 3 |
| 3 | 7520 | 1 |
| 4 | 1054 | 1 |
| 5 | 1257 | 5 |
其中,C_Id 是客戶資料表中的主鍵 (Primary Key) 欄位,我們怎麼將這兩張不同的資料表依相關欄位來作個連接結合以便查詢呢?這就是接下來的主題 Join!
SQL 的 Join 查詢有哪幾種類型哩?
‧ Inner Join : 內部連接‧ LEFT (OUTER) JOIN : 左外部連接
‧ RIGHT (OUTER) JOIN : 右外部連接
‧ FULL (OUTER) JOIN : 全部外部連接
‧ CROSS JOIN : 交叉連接
‧ NATURAL JOIN : 自然連接