2013-04-08 30 views
0

專欄中,我有一個表,看起來像這樣: Employee表:獲取輸出基於同一表

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)。而對於第2號職位的員工則是經理。

我想建立一個查詢將返回下面的結果:在這裏

Employee_id E_Name Manager_Name 
------------------------------- 
1    p   - 
2    q   p 
3    r   p 
4    s   q 

表有經理的名字,而不是ID。

如何達到上述目的?在此先感謝

回答

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 
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 
1

它可以很容易地用LEFT OUTER完成加入:

試試這個:

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