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

如何在同表中根据关联列获取对应值:员工经理姓名匹配SQL查询

如何查询员工及其直属经理的姓名?

嘿,这是个典型的**自连接(Self-Join)**场景,因为经理本身也是公司的员工,所以我们需要把test1.employee表和自己关联起来,才能正确获取每个员工对应的经理姓名。先帮你拆解下问题,再给出正确的解法:

原查询的问题所在

你写的错误语句:

select employee_Name, employee_Name as manager_Name from employee where Employee_id in (select Manager_ID from employee ) ;

有两个核心问题:

  • WHERE子句里的Employee_id in (select Manager_ID from employee ),只会筛选出那些本身是经理的员工(也就是Employee_id出现在Manager_ID列里的人),而不是所有员工
  • 直接把employee_Name当manager_Name输出,完全没有根据Manager_ID去关联对应的经理信息,结果自然不对

正确的查询语句

我们给同一张表起两个不同的别名(比如e代表普通员工,m代表经理),通过员工的Manager_ID = 经理的Employee_id这个条件来建立关联:

SELECT e.Employee_Name AS employee_Name, m.Employee_Name AS manager_Name
FROM test1.employee e
JOIN test1.employee m ON e.Manager_ID = m.Employee_id;

实际执行结果

根据你提供的表数据:

Employee_id Employee_Name Manager_ID
1124 Annapurna 1125
1125 Jaseel 1126
1126 Shilpa 1125

执行上面的语句后会得到:

employee_Namemanager_Name
AnnapurnaJaseel
JaseelShilpa
ShilpaJaseel

小提醒:你给出的预期结果里Shilpa对应的经理姓名可能是笔误哦,根据表数据Shilpa的Manager_ID是1125,对应的应该是Jaseel,而不是Annapurna。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:02:07