0

我有如下表结构,

员工信息:

id | name | role   | managerid | 
1  | john | BO     | 2         |
2  | jack | Manager| 3         |

现在我需要在我需要他的 、 和 (而不是经理 ID)的地方选择 johnidname详细role信息managername。根据上面的表,我需要为同一个表编写一个查询,因为 manager 也在同一个表中。

我想过像下面这样使用联合,

select * from employees_info e
union (select emp_name as manager_name
from employees_info 
where e.managerid = managerid);

但我得到了

unknown column e.managerid in where clause

我可以创建role一个不同的表,我可以使用内部连接来让它工作,但是,我只是想像上面的方法一样尝试一次,我无法让它工作。如果方法正确,请帮我解决这个问题。或者你甚至可以给我一个更好的方法。

4

1 回答 1

1

SQLFiddle 示例在这里

select E.id emp_id, E.name emap_name, E.role emp_role, M.name manager_name from employees_info E inner join employees_info M on E.managerid = M.id where E.name='john'
于 2013-10-12T05:49:39.763 回答