您可以使用递归查询来获取组织机构的所有子级条数。下面是一个示例查询:

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录