You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写自内连接查询获取员工姓名及其对应管理者姓名?

员工管理者信息查询修正方案

我需要编写一条SELECT查询语句,显示员工的first_name、last_name以及对应的management_name。员工表的每一行都有一个management列,该列的值等于其管理者的employee_id。

我编写了以下查询,但运行效果不佳:

select 
  e.first_name , 
  e.last_name , 
  o.firstname AS management_name 
from employee e
join employee o  ON e.employee_id = o.management

你的查询存在几个关键问题:

  1. 关联逻辑颠倒:员工表的management字段存储的是管理者的employee_id,所以正确的关联条件应该是e.management = o.employee_id,而不是你写的e.employee_id = o.management。
  2. 字段名不匹配:原查询里的o.firstname应该是o.first_name(和员工表的字段命名保持一致)。
  3. 内联查询会丢失无管理者的员工:如果存在没有上级的员工(management字段为NULL),用JOIN会直接过滤掉这些记录,建议用LEFT JOIN保留所有员工数据。

修正后的查询语句:

select 
  e.first_name, 
  e.last_name, 
  concat(o.first_name, ' ', o.last_name) AS management_name
from employee e
left join employee o on e.management = o.employee_id

如果只需要管理者的名字(不需要拼接姓氏),可以把concat(o.first_name, ' ', o.last_name)替换为o.first_name。

内容的提问来源于stack exchange,提问作者zahra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:24:56