2013-10-12 7 views
0

У меня есть структура таблицы, как показано ниже,выбор столбца в качестве другого имени столбца с условием

employees_info:

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

Теперь нужно выбрать детали сортира, где мне нужно его id, name , role и managername (не идентификатор менеджера). В соответствии с приведенной выше таблицей мне нужно написать запрос для той же таблицы, что и менеджер в той же таблице.

Я думал использовать объединение, как показано ниже,

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 как другая таблица, и я могу использовать внутреннее соединение, чтобы получить его работу, но я просто подумал о том, чтобы попробовать это как-то, как вышеупомянутый подход, и я не могу заставить его работать. Пожалуйста, помогите мне решить эту проблему, если она правильная. Или вы даже можете дать мне лучший подход для этого.

ответ

1

SQLFiddle Пример here

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' 
Смежные вопросы