sql - SQL查询以获取主管层次结构列表。员工->主管->主管-LMLPHP
我有两张表Employee和Department这张图片显示了每个员工的经理。我想写一个SQL查询,它给出所有主管(经理,经理的经理…)的列表。
我只想要一个单独的列,当给定一个特定的雇员时,显示一个主管的列表。
例如,如果我给员工id=202,那么我应该收到200130

 |supervisor |
 +-----------+
 |   200     |
 |   130     |

我有这个问题
WITH emp_dept as(
SELECT employee_id,manager_id
FROM employee,department
WHERE employee.dept_id= department.dept_id
   )

 WITH recursive p as (
    select e1.employee_id, e1.manager_id
    from   emp_dept e1
    where    employee_id = 202

    union all

   select e2.employee_id , e2.manager_id
   from   p
   join   emp_dept e2 ON e2.employee_id = p.manager_id

)
select manager_id
from   p

`
我不能用它。我正在使用pgadmin4。
如果有人能帮我解答这个问题,我将不胜感激

最佳答案

我认为您可以对Oracle使用“分层查询”并尝试以下操作:

select manager_id supervisor
from employee
start with employee_id = 202
connect by nocycle employee_id = prior manager_id;

关于sql - SQL查询以获取主管层次结构列表。员工->主管->主管,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49962130/

10-10 06:52