Получить всех родителей для ребенка в postgresql - PullRequest
0 голосов
/ 30 ноября 2018

Я успешно провёл на SQL Server.Моя система работает на SQL Server и postgresql.

Но когда я перехожу с SQL Server на postgresql, она не работает.

Мой sql такой:

with name_tree as 
(
    SELECT DepartNo, ParentNo FROM Departments 
    WHERE DepartNo IN (
        SELECT DepartNo FROM BelongToDepartment 
        WHERE UserNo = 1)
   union all
   select C.DepartNo, C.ParentNo
   from Departments c
   join name_tree p on C.DepartNo = P.ParentNo  
    AND C.DepartNo<>C.ParentNo 
) 
select * from name_tree

Ошибкаis:

name_tree не существует

Как получить всех родителей для ребенка в postgresql

Подробнее о MSQ Server здесь

1 Ответ

0 голосов
/ 30 ноября 2018

Попробуйте:

with RECURSIVE name_tree as 
(
    SELECT DepartNo, ParentNo FROM Departments 
    WHERE DepartNo IN (
        SELECT DepartNo FROM BelongToDepartment 
        WHERE UserNo = 1)
   union all
   select C.DepartNo, C.ParentNo
   from Departments c
   join name_tree p on C.DepartNo = P.ParentNo  
    AND C.DepartNo<>C.ParentNo 
) 
select * from name_tree
...