求SQL查询语句:关联员工表与经理表展示经理及员工姓名
员工与经理关联查询方案及结果
没问题,我来帮你搞定这个SQL查询需求~咱们先理清楚现有表的情况,再给出具体的查询语句和结果。
现有表结构与数据
首先明确两张表的结构和当前数据:
员工表(EMP)
| EMPID | EMPNAME |
|---|---|
| 1 | A |
| 2 | B |
经理表(MNG)
| MNGID | EMPID |
|---|---|
| 2 | 1 |
这里的核心关联逻辑是:经理表的MNGID对应员工表的EMPID,也就是说MNG表记录的是「员工ID对应的经理ID」,而经理本身也是员工表中的一员。
查询方案
要获取经理姓名和员工姓名,我们需要对员工表进行自连接——因为经理信息也存储在员工表里,再通过经理表作为中间关联桥梁来关联员工和其对应的经理。
具体的SQL查询语句如下:
SELECT mng_emp.EMPNAME AS 经理姓名, emp.EMPNAME AS 员工姓名 FROM EMP emp JOIN MNG mng ON emp.EMPID = mng.EMPID JOIN EMP mng_emp ON mng.MNGID = mng_emp.EMPID;
语句解释
- 给员工表起两个别名:
emp用来代表普通员工,mng_emp用来代表经理(因为经理也是员工)。 - 第一步关联:通过
emp.EMPID = mng.EMPID,把员工表和经理表连接,找到每个员工对应的经理ID(MNGID)。 - 第二步关联:通过
mng.MNGID = mng_emp.EMPID,把经理ID和员工表中的经理信息关联起来,从而拿到经理的姓名。 - 最后用
AS给字段设置别名,让查询结果更易读。
查询结果
执行上述SQL后,得到的结果如下:
| 经理姓名 | 员工姓名 |
|---|---|
| B | A |
内容的提问来源于stack exchange,提问作者Balkishan Khatri
相关产品推荐
相关产品推荐

