SELECT stament子查询

时间:2017-06-22 06:07:36

标签: sql

我有一个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   ║
╚═════════════╩═══════════╩═══════════╩══════════════╝

我真的遇到了从经理那里拔出名字的问题。有什么想法吗?

由于

2 个答案:

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