我有一个看起来像这样的表: 员工表:
Employee_id E_Name Manager_Id
-------------------------------
1 p -
2 q 1
3 r 1
4 s 2
此处列Manager_Id表示经理的员工ID。 p的含义没有经理。对于q和r,员工ID为1是经理(p)。对于具有emp id 2的s员工是经理。
我想构建一个返回结果的查询:
Employee_id E_Name Manager_Name
-------------------------------
1 p -
2 q p
3 r p
4 s q
这里的表有经理名称而不是id。
如何实现上述目标?提前致谢
答案 0 :(得分:1)
可以通过LEFT OUTER JOIN轻松完成:
试试这个:
SELECT a.EMPLOYEE_ID, a.E_NAME, b.E_NAME
FROM EMPLOYEE a left outer join EMPLOYEE b
on A.MANAGER_ID = B.EMPLOYEE_ID
答案 1 :(得分:0)
您没有提到数据库提供程序,但对于 MySQL ,它是:
SELECT e.employee_id, e.e_name,COALESCE(m.e_name,'-') AS Manager_Name
FROM employee e
LEFT JOIN employee m ON m.employee_id = e.manager_id
答案 2 :(得分:0)
请尝试:
select
Employee_id,
E_Name,
(select E_Name from YourTable b where b.Employee_id=a.Manager_Id) as Manager_Name
from YourTable a