1. 程式人生 > >SQL 中的 left join 外連線

SQL 中的 left join 外連線

left join 是 left outer join 的簡寫,left join 預設是 outer 屬性的。

account 表

這裡寫圖片描述

custom 表

這裡寫圖片描述

0 基礎

inner join

這裡寫圖片描述

left join

這裡寫圖片描述

這裡寫圖片描述

外連線包括 第一個表 的 所有行,但 僅僅 包含 第二個表 中那些匹配行 的資料。

這裡寫圖片描述

1 左外連線 與 右外連線

關鍵詞 left 指出連線左邊的表決定結果集的行數,而右邊的只負責提供與之匹配的列值。

這裡寫圖片描述

這裡寫圖片描述

2 三路外連線

SELECT a.account_id, 
             a.product_cd,
             CONCAT(i.fname, ' '
, i.lname) person_name, b.name business_name FROM account a LEFT JOIN individual i ON i.cust_id = a.cust_id LEFT JOIN business b ON a.cust_id = b.cust_id;

這裡寫圖片描述

使用子查詢

SELECT account_ind.account_id, 
             account_ind.product_cd,
             account_ind.person_name,
             b.name
business_name FROM (SELECT a.account_id, a.product_cd, a.cust_id, CONCAT(i.fname, ' ', i.lname) person_name FROM account a LEFT JOIN individual i ON a.cust_id = i.cust_id) account_ind LEFT JOIN business b ON account_ind.cust_id = b.cust_id;

這裡寫圖片描述