You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL层级查询需求:获取组织全层级归属关系

解决方案:递归查询组织层级归属关系

嘿 Piotr,针对你需要查询每个组织向上所有高阶归属的需求,用**递归CTE(Common Table Expression)**就能完美解决,这是处理树形层级数据的标准方案。

下面是可以直接运行的SQL语句,完全匹配你想要的输出格式:

WITH OrgHierarchy AS (
    -- 锚点成员:先获取每个组织自身的归属关系(层级起点)
    SELECT 
        Id, 
        Id AS BelongsToOrgId,
        Name AS OrgName,
        Name AS BelongsToOrgName
    FROM Organizations
    UNION ALL
    -- 递归成员:向上遍历父级组织,直到没有顶级父级(ParentId IS NULL)
    SELECT 
        o.Id, 
        oh.BelongsToOrgId,
        o.Name AS OrgName,
        oh.BelongsToOrgName
    FROM Organizations o
    INNER JOIN OrgHierarchy oh ON o.ParentId = oh.Id
)
-- 整理成你需要的最终输出格式
SELECT 
    Id,
    BelongsToOrgId,
    CONCAT(OrgName, '是', BelongsToOrgName, '的一部分') AS 描述
FROM OrgHierarchy
ORDER BY Id, BelongsToOrgId;

代码逻辑说明:

  • 锚点部分:先把每个组织和自身的归属关系列出来,这是遍历层级的基础起点;
  • 递归部分:通过关联父级ID,不断向上追溯每个组织的上级节点,直到触及最顶级的Company(它的ParentId为NULL,会自动终止递归);
  • 结果整理:用CONCAT函数拼接出你需要的中文描述,并按组织ID和归属ID排序,让结果更清晰易读。

执行这段SQL后,就能得到你期望的完整归属关系列表啦。

内容的提问来源于stack exchange,提问作者piotrassss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:17:47