如何在自连接表中检索包含Null值的员工与经理信息
修正后的SQL查询语句
原查询存在两个关键问题:
- LEFT JOIN的关联条件错误,没有建立员工和经理的正确关联逻辑
- WHERE子句过滤掉了
Manager_ID为Null的员工记录
修正后的SQL如下:
select a.Emp_Name as Employee, b.Emp_Name as Manager from employee a left outer join employee b on a.Manager_ID = b.Emp_ID
修正说明:
- 将关联条件
a.Manager_ID = b.Emp_ID移至LEFT OUTER JOIN的ON子句中,这是自关联的正确逻辑——通过员工的Manager_ID匹配对应经理的Emp_ID - 移除原WHERE子句,因为LEFT JOIN会自动保留所有左表(员工表a)的记录,当员工无经理(
Manager_ID为Null)时,右表(经理表b)的字段会返回Null,正好符合需求
内容的提问来源于stack exchange,提问作者Pro Learner
相关产品推荐
相关产品推荐

