SQL 中的 left join 外連線
阿新 • • 發佈:2019-01-30
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;