我有一个SQL员工表,如下所示:
╔════╦═════════════╦═══════════╦═══════════╦═════════════╗
║ ID ║ NAME ║ TITLE ║ HIRE_DATE ║ MANAGER ID ║
╠════╬═════════════╬═══════════╬═══════════╬═════════════╣
║ 1 ║ John Smith ║ Manager ║ 15-JUN-15 ║ NULL ║
║ 2 ║ Jim Jimmers ║ Associate ║ 23-AUG-15 ║ 1 ║
╚════╩═════════════╩═══════════╩═══════════╩═════════════╝
我想返回以下内容:
╔═════════════╦═══════════╦═══════════╦══════════════╗
║ NAME ║ TITLE ║ HIRE_DATE ║ MANAGER NAME ║
╠═════════════╬═══════════╬═══════════╬══════════════╣
║ John Smith ║ Manager ║ 15-JUN-15 ║ NULL ║
║ Jim Jimmers ║ Associate ║ 23-AUG-15 ║ John Smith ║
╚═════════════╩═══════════╩═══════════╩══════════════╝
我真的遇到了从经理那里拔出名字的问题。有什么想法吗?
由于
答案 0 :(得分:3)
使用联接而不是子查询:
select t1.name, t1.title, t1.hire_date, t2.Name from table t1 left join table t2 on t1.managerid = t2.id
答案 1 :(得分:3)
它应该是这样的:
SELECT E1.NAME, E1.TITLE, E1.HIRE_DATE, E2.NAME
FROM employee AS E1 LEFT OUTER JOIN employee AS E2 ON (E2.ID=E1.MANAGER_ID)