在 postgresql 中获取 child 的所有 parents

Get all parents for a child in postgresql

我在 SQL 服务器上 运行ed 成功。我的系统 运行 在 SQL 服务器和 postgresql.

但是当我从 SQL 服务器更改为 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

错误是:

name_tree doesn't exist

如何在 postgresql

中获取 child 的所有 parents

MSQ 服务器中的更多详细信息

尝试:

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