[SQL 筆記備份]- 021_SQL左側資料表連結(LEFT JOIN)
[SQL 筆記備份]- 021_SQL左側資料表連結(LEFT JOIN)
資料來源:http://webdesign.kerthis.com/sql/sql_left_join
LEFT JOIN 可以用來建立左外部連接,查詢的 SQL 敘述句 LEFT JOIN 左側資料表 (table_name1) 的所有記錄都會加入到查詢結果中,即使右側資料表 (table_name2) 中的連接欄位沒有符合的值也一樣。
LEFT JOIN 語法 (SQL LEFT JOIN Syntax)
SELECT table_column1, table_column2···
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name;
有些資料庫的語法會是LEFT OUTER JOIN。
LEFT JOIN 查詢實例 (Example)
這是一個客戶資料表「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 | Order_No | C_Id |
---|---|---|
1 | 2572 | 3 |
2 | 7375 | 3 |
3 | 7520 | 1 |
4 | 1054 | 1 |
5 | 1257 | 5 |
現在我們想查詢所有客戶與其訂單狀況的資料,我們可以作一個 LEFT JOIN 查詢:
SELECT customers.Name, orders.Order_No
FROM customers
LEFT JOIN orders
ON customers.C_Id=orders.C_Id;
查詢結果如下:
Name | Order_No |
---|---|
張一 | 7520 |
張一 | 1054 |
王二 | |
李三 | 2572 |
李三 | 7375 |
LEFT JOIN會返回左側資料表中所有資料列,就算沒有符合連接條件,而右側資料表中如果沒有匹配的資料值就會顯示為「NULL」。