咨询如何使用SQL通过匹配两列检索员工经理姓名
如何查询每位员工对应的经理姓名?
嘿,这个需求用**SQL自连接(Self-Join)**就能完美解决!你的员工表本身就包含了经理的信息(因为manager_id对应着另一位员工的id),所以只需要把表和自身做关联就行。
核心思路
把同一张员工表当成两个独立的表来看:
- 一个作为「员工表」(别名
e),用来获取员工的基本信息 - 另一个作为「经理表」(别名
m),用来通过manager_id匹配对应的经理姓名
用LEFT JOIN关联两张“表”,确保所有员工都能被查询到,包括那些经理是自己的情况(比如Dylan的manager_id等于自己的id)。
实现代码
SELECT e.id, e.employee AS employee, m.employee AS manager FROM employees e LEFT JOIN employees m ON e.manager_id = m.id;
执行结果
运行上面的SQL后,你会得到和预期完全一致的结果:
id employee manager
1 Jane Dylan
2 Bob Dylan
3 Anna Jane
4 Rosa Theo
5 Dylan Dylan
6 Theo Dylan
相关技术参考
如果你想深入了解,可以搜索关键词:SQL 自连接(Self Join),这种技巧在处理层级关系数据(比如员工-经理、分类-子分类)时非常常用。
内容的提问来源于stack exchange,提问作者tlqn
相关产品推荐
相关产品推荐

