MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)

HIK4RU44發表於2024-03-10

多表查詢(自連線)


自連線查詢,可以是內連線查詢,也可以是外連線查詢
select 欄位列表 from 表A 別名A join 表A 別名B on 條件...;

自連線內連線

查詢員工以及所屬領導的名字
#可以這樣寫
select e1.name '員工',e2.name '上司'
    from emp e1
    join emp e2
    on e1.managerId = e2.id;
#也可以這樣寫
select e1.name '員工', e2.name '上司' 
    from emp e1, emp e2
    where e1.managerId = e2.id;


自聯接外連線

左外連線

包含左表的全部資料, 以及左表和右表的交集部分

select e1.name '員工', e2.name '上司'
    from emp e1
    left join emp e2
    on e1.managerID = e2.id;

如果是自連線內連線查詢on e1.managerID = e2.id,

managerID為null的記錄不會出現。

因為左外連線包含了左表的所有資料,所以managerID為null的員工也會在結果中出現

相關文章