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

如何编写SQL查询获取所有员工姓名及其部门经理姓名?

查询员工及其所属部门经理姓名的解决方案

表关联逻辑

  • 员工表(Employees)与部门表(Departments)通过Employees.DEPID = Departments.DID关联
  • 部门表的MGRID字段对应员工表的EID(即部门经理的员工ID)

需求说明

需要查询所有员工的姓名(FNAME),并将原查询结果中的MGRID替换为对应的经理姓名(同样来自Employees表的FNAME)。

正确的SQL查询语句

select
  emp.FNAME as 员工姓名,
  dept.D_NAME as 所属部门,
  mgr.FNAME as 经理姓名
from EMPLOYEES emp
left join DEPARTMENTS dept
  on emp.DEPID = dept.DID
left join EMPLOYEES mgr
  on dept.MGRID = mgr.EID;

语句解释

  1. 为表设置别名(emp代表员工表、dept代表部门表、mgr代表经理对应的员工记录),简化语句结构
  2. 第一次LEFT JOIN关联员工与部门,确保所有员工都能被查询到(即使部分员工未关联部门也会保留)
  3. 第二次LEFT JOIN通过部门的经理ID(MGRID)关联员工表,获取经理的姓名
  4. 使用AS设置中文别名,让查询结果更直观易读

预期查询结果示例

员工姓名              所属部门         经理姓名
-------------------- --------------- ----------
SHAHID               Accounts        NULL
PREM                 Accounts        NULL
AKASH                Accounts        NULL
SHAAN                IT              NULL
VISHAL               IT              NULL
DEV                  Management      NULL
SOME                 Design          NULL
MANISHA              Design          NULL
ISHAAN               Web             SHAHID
ADITI                Web             SHAHID
KAVITA               Web             SHAHID

(注:示例中Accounts等部门的经理姓名为NULL,是因为原查询结果中这些部门的MGRID为空;若后续部门设置了经理,会自动显示对应姓名)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:35:29