复制
收藏
提问
全网
查询info表中orgde=1的数据,得到数据中的name、orgcode,根据这条数据中的orgcode,查询info表中par=orgcode的数据,得到数据中的name、orgcode,这个sql怎么写
1个月前
回答简洁
更专业一些
- 首先查询info表中orgde=1的数据,然后根据得到的orgcode查询info表中par=orgcode的数据。
初始查询
- 查询条件:orgde=1
- 所需字段:name, orgcode
递归查询
- 查询条件:par=初始查询得到的orgcode
- 所需字段:name, orgcode
WITH RECURSIVE cte (name, orgcode) AS (
SELECT name, orgcode
FROM info
WHERE orgde = 1
UNION ALL
SELECT i.name, i.orgcode
FROM info i
JOIN cte ON i.par = cte.orgcode
)
SELECT name, orgcode
FROM cte;