根据同一个表中的列获取输出

时间:2013-04-08 09:53:45

标签: sql database

我有一个看起来像这样的表: 员工表:

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。

如何实现上述目标?提前致谢

3 个答案:

答案 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