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

SQL查询问题:不使用JOIN通过ReportsTo获取上级及下属数量

问题分析与解决

你的SQL代码返回Null是因为两个关键错误:

  • 子查询里错误使用了FirstName + ' ' + LastName,但你的员工表实际字段是FullName,字段名称不匹配。
  • 子查询的关联条件EmployeeID = ReportsTo没区分内外表字段,导致子查询内部的ReportsTo是自身表的字段,无法关联外部分组后的上级ID。

修正后的SQL代码

SELECT
    (SELECT FullName
     FROM Employees AS boss
     WHERE boss.EmployeeID = e.ReportsTo) AS FullName,
    COUNT(EmployeeID) AS Subordinates
FROM Employees AS e
WHERE ReportsTo IS NOT NULL
GROUP BY ReportsTo

代码说明

  1. 给外部表起别名e,子查询表起别名boss,通过boss.EmployeeID = e.ReportsTo明确关联上级员工ID和当前员工的ReportsTo字段。
  2. 子查询直接使用表中已有的FullName字段,避免无意义的拼接错误。
  3. 分组后只保留预期结果需要的字段,结构与你要的输出一致。

执行后会得到预期结果:

FullNameSubordinates
Andrew Fuller5
Steven Buchanan3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:09:55