SQL 获取组织机构所有子级条数的递归查询
您可以使用递归查询来获取组织机构的所有子级条数。下面是一个示例查询:
WITH RECURSIVE sub_orgs AS (
SELECT id, parent_id
FROM orgs
WHERE id = '<org_id>' -- 替换为您要查询的组织机构的ID
UNION ALL
SELECT o.id, o.parent_id
FROM orgs o
INNER JOIN sub_orgs so ON o.parent_id = so.id
)
SELECT COUNT(*) AS sub_org_count
FROM sub_orgs;
上述查询使用了递归公共表表达式(WITH RECURSIVE)来递归地获取指定组织机构的所有子级。首先,它选择了指定的组织机构作为初始记录,并将其添加到结果集中。然后,它通过内部连接将子级组织机构与上一级组织机构进行关联,并将它们添加到结果集中。这个过程会一直持续下去,直到没有更多的子级为止。
最后,查询返回结果集中的记录数,即组织机构的所有子级条数。
请注意,您需要将 '<org_id>' 替换为您要查询的组织机构的实际ID。
原文地址: https://www.cveoy.top/t/topic/hq34 著作权归作者所有。请勿转载和采集!