2013-02-23 71 views
2

我有一个表格,列EMPLOYEEID,EMPLOYEENAME,MANAGERID查询以下情况

MANGERID来自EMPLOYEEID列。有些EMPLOYEEID没有任何manangerid(即NULL)。现在我需要查询的输出,它返回EMPLOYEENAME和相应的MANGERNAME

怎么办?

我试过自联接,但无法获得所需的输出。

+1

那你为什么还加入了'plsql'标签?这是'PL/SQL'的标签 - 由** Oracle **提供的过程式SQL语言扩展 - 与** Microsoft ** SQL Server无关...... – 2013-02-23 12:38:28

+0

@marc_s您是否将相同的查询写入PL/sql以不同的方式?这对于oracle的人们没有用处吗? – F11 2013-02-23 16:03:44

+0

您是否真的需要Oracle(PL/SQL)呢? T-SQL和PL/SQL是**不是相同的 - 有差异 - 所以如果你真的需要两者 - 让我们知道。否则,你会得到T-SQL(或PL/SQL)特定的解决方案.... – 2013-02-23 16:05:12

回答

2

您将需要一个自联接,以LEFT JOIN让那些没有经理:

SELECT 
    e.EMPLOYEEID, 
    e.EMPLOYEENAME, 
    m.EmployeeName AS ManagerName 
FROM Employees AS e 
LEFT JOIN Employees AS m ON e.ManagerId = m.EmployeeID; 

SQL Fiddle Demo