2014-04-10 80 views
0

列出员工姓名和沿着他们的上司的名字如何比较2列并根据结果返回第三列?

CREATE TABLE Employees (
    EmployeeID char(4) PRIMARY KEY, 
    EmployeeName varchar(30) NOT NULL, 
    HourlyRate real, 
    SkillType varchar(20), 
    SupervisorID char(4) NOT NULL 
) 

所以我想返回显示

Employee Name || Supervisor Name 

表我试图

Select 
    EmployeeName, 
    (Select EmployeeName Where SupervisorID = EmployeeID) As Supervisor 
From Employees 

但它只显示值在Employee是他们自己的主管,其他人则返回null。在讲座我一定是简单的东西,但我无法弄清楚

回答

2

你需要加入同桌再次

Select e.EmployeeName, s.EmployeeName As Supervisor 
From Employees e 
left join Employees s on s.employeeID = e.supervisorID 
+0

干杯,还没有覆盖加入呢,但是从我读这是有道理的:) – user3449768

0
SELECT EMAIN.EmployeeName AS Employee, 
     (SELECT E.EmployeeName FROM Employees AS E WHERE EMAIN.EmployeeID = E.SupervisorID) AS Supervisor 
FROM Employees AS EMAIN 
相关问题