MYSQL学习笔记23: 多表查询(自连接内连接+左右外连接)

多表查询(自连接)


自连接查询,可以是内连接查询,也可以是外连接查询
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的员工也会在结果中出现

posted @ 2024-03-10 22:43  HIK4RU44  阅读(42)  评论(0)    收藏  举报