示例
WITH RECURSIVE org_hierarchy (ID, PARENT_ID, ORG_TYPE,ORG_NAME) AS (
-- 基础查询:找到当前用户的直接上级部门
SELECT
ID,
PARENT_ID,
ORG_TYPE,
ORG_NAME
FROM
SYS_ORG
WHERE
ID = '10568de8e7023000bd1b769b638c806e'
UNION ALL
-- 递归部分:继续向上查找上级部门,直到找到公司
SELECT
d.ID,
d.PARENT_ID,
d.ORG_TYPE,
d.ORG_NAME
FROM
org_hierarchy uh
JOIN
SYS_ORG d ON uh.PARENT_ID = d.ID
WHERE
d.ORG_TYPE = '1' and
d.PARENT_ID IS NOT NULL
),
org_hierarchy2(ID, PARENT_ID, ORG_TYPE,ORG_NAME) AS (
SELECT ID, PARENT_ID, ORG_TYPE,ORG_NAME
FROM org_hierarchy
WHERE ORG_TYPE = '1'
UNION ALL
SELECT
d2.ID,
d2.PARENT_ID,
d2.ORG_TYPE,
d2.ORG_NAME
FROM
org_hierarchy2 uh2
JOIN
SYS_ORG d2 ON uh2.ID = d2.PARENT_ID
)
SELECT id FROM org_hierarchy2