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

如何查询与经理居住在同一城市的员工姓名?

找出与直属经理居住在同一城市的员工姓名

需求:编写SQL查询语句,找出所有与直属经理居住在同一城市的员工姓名。

数据表结构及数据

employee表(包含普通员工和经理)

employeeidnameprojectidcity
1jeff1new york
2larry1new york
3Linda2detroit
4tom2LA

Managertable表(记录项目与直属经理的对应关系)

projectidmangerid
12
23

当前已实现的代码

你已能筛选出非经理员工,但不清楚如何对比员工与经理的城市信息,现有代码:

SELECT name  
FROM employee e
WHERE employeeid not in( 
SELECT mangerid
FROM Managertable pm
INNER JOIN employee e
ON pm.mangerid= e.employeeid); 

解决方案

要实现需求,无需复杂子查询,通过多次关联employee表即可完成:

  1. 先通过Managertable关联员工表,获取每个员工对应的直属经理ID;
  2. 再次关联employee表拿到经理的城市信息,与员工城市做对比。

最终SQL语句如下:

SELECT e.name AS `employee name`
FROM employee e
JOIN Managertable mt ON e.projectid = mt.projectid
JOIN employee m ON mt.mangerid = m.employeeid
WHERE e.employeeid != m.employeeid -- 排除经理自身
  AND e.city = m.city;

语句说明

  • 第一次关联Managertable,建立员工和其所属项目经理ID的关联;
  • 第二次关联employee表(别名m代表经理),获取经理的城市数据;
  • 通过e.city = m.city筛选出与经理同城市的员工,e.employeeid != m.employeeid确保结果中不包含经理本人。

执行该语句后,将得到预期结果:

employee name
jeff

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:46:00