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

MySQL如何查询层级数据并将所有下属直属上级统一为最高管理者

实现方案

方案1:递归CTE写法(推荐,支持任意层级下属查询,适配MySQL8.0+、PostgreSQL、SQL Server等主流数据库)

该写法无需固定关联层级,可自动遍历所有层级的下属,代码简洁易维护:

WITH RECURSIVE subordinate_tree AS (
    -- 锚点:查询直属上级为432的一级下属
    SELECT USER_ID 
    FROM `user` 
    WHERE IMMEDIATE_SUPERIOR_ID = 432
    UNION ALL
    -- 递归遍历:查询所有下级下属
    SELECT u.USER_ID
    FROM `user` u
    INNER JOIN subordinate_tree st ON u.IMMEDIATE_SUPERIOR_ID = st.USER_ID
)
SELECT 
    USER_ID,
    432 AS IMMEDIATE_SUPERIOR_ID
FROM subordinate_tree;

方案2:基于原有多表关联逻辑修改(适配不支持递归CTE的低版本数据库

如果你使用的是不支持递归语法的低版本数据库,可以基于你原有的多表LEFT JOIN逻辑,将各层级下属合并去重后输出:

SELECT DISTINCT 
    user_id,
    432 AS IMMEDIATE_SUPERIOR_ID
FROM (
    SELECT c2.user_id FROM `user` c1
    LEFT JOIN `user` c2 ON c1.user_id = c2.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c3 ON c2.user_id = c3.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c4 ON c3.user_id = c4.IMMEDIATE_SUPERIOR_ID
    LEFT JOIN `user` c5 ON c4.user_id = c5.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c6 ON c5.user_id = c6.IMMEDIATE_SUPERIOR_ID 
    WHERE c1.USER_ID = 432
    UNION
    SELECT c3.user_id FROM `user` c1
    LEFT JOIN `user` c2 ON c1.user_id = c2.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c3 ON c2.user_id = c3.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c4 ON c3.user_id = c4.IMMEDIATE_SUPERIOR_ID
    LEFT JOIN `user` c5 ON c4.user_id = c5.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c6 ON c5.user_id = c6.IMMEDIATE_SUPERIOR_ID 
    WHERE c1.USER_ID = 432
    UNION 
    SELECT c4.user_id FROM `user` c1
    LEFT JOIN `user` c2 ON c1.user_id = c2.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c3 ON c2.user_id = c3.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c4 ON c3.user_id = c4.IMMEDIATE_SUPERIOR_ID
    LEFT JOIN `user` c5 ON c4.user_id = c5.IMMEDIATE_SUPERIOR_ID 
    LEFT JOIN `user` c6 ON c5.user_id = c6.IMMEDIATE_SUPERIOR_ID 
    WHERE c1.USER_ID = 432
    -- 若层级超过6级,按需补充c5、c6对应查询分支即可
) t
WHERE user_id IS NOT NULL;

两种方案最终输出结果均符合要求:

USER_IDIMMEDIATE_SUPERIOR_ID
554432
1150432
1442432

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:45:03