Как получить имя и имя менеджера - PullRequest
0 голосов
/ 28 декабря 2018

Как получить имя и имя менеджера

+----+-----------+---------+
| id | name      | manager |
+----+-----------+---------+
|  1 | bhupendra |       0 |
|  2 | shyam     |       1 |
|  3 | ram       |       1 |
|  4 | geeta     |       2 |
|  5 | sita      |       1 |
+----+-----------+---------+

мне нужен результат как

+-----------+-----------+
| name      | manager   |
+-----------+-----------+
| bhupendra |           |
| shyam     | bhupendra |
| ram       | bhupendra |
| geeta     | shyam     |
| sita      | bhupendra |
+-----------+-----------+

Ответы [ 3 ]

0 голосов
/ 28 декабря 2018

Проверьте это

with recursive cte (id, name, parent_id) as (
  select     id,
             name,
             manager
  from       employee
  union all
  select     p.id,
             p.name,
             p.manager
  from       employee e
  inner join cte
          on p.manager = cte.id
)
select * from cte;
0 голосов
/ 28 декабря 2018

Вы должны использовать одну и ту же таблицу дважды, используя псевдоним

select a.name, b.name as manager 
from my_table a 
left join  my_table b on a.manager  = b.id  
0 голосов
/ 28 декабря 2018

Вы можете самостоятельно присоединиться к столбцу id в столбце manager:

SELECT    e.name AS name, m.name AS manager
FROM      employee e
LEFT JOIN employee m ON m.id = e.manager
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...