MYSQL 递归父子

捕获.PNG

子查父 (根据子节点查询所有父节点)

SELECT
    T2.*
FROM
    (
        SELECT
            @r AS _id,
            (
                SELECT
                    @r := parent_id
                FROM
                    t_sys_organization
                WHERE
                    id = _id
            ) AS parent_id,
            @l := @l + 1 AS lvl
        FROM
            (SELECT @r := '4', @l := 0) vars,
            t_sys_organization h
        WHERE
            @r <> 0
    ) T1
JOIN t_sys_organization T2 ON T1._id = T2.id
ORDER BY
    T1.lvl DESC

父查子 (根据节点查询所有字点)

  SELECT 
    ID.level,
    DATA.* 
  FROM
    (SELECT 
      @ids AS _ids,
      (SELECT 
        @ids := GROUP_CONCAT(id) 
      FROM
        t_sys_organization 
      WHERE FIND_IN_SET(parent_id, @ids)) AS cids,
      @l := @l + 1 AS LEVEL 
    FROM
      t_sys_organization,
      (SELECT 
        @ids := '1',
        @l := 0) b 
    WHERE @ids IS NOT NULL) id,
    t_sys_organization DATA 
  WHERE FIND_IN_SET(DATA.id, ID._ids) 
  ORDER BY LEVEL,
    id ;

查询结果


捕获.PNG

父查子(方法二)

SELECT 
  O2.* 
FROM
  (SELECT 
    @r AS _id,
    (SELECT 
      @r := id 
    FROM
      t_sys_organization 
    WHERE parent_id = _id) AS id,
    @l := @l + 1 AS lvl 
  FROM
    (SELECT 
      @r := '1',
      @l := 0) vars,
    t_sys_organization h) O1 
  JOIN t_sys_organization O2 
    ON O1._id = O2.parent_id 
WHERE O2.enabled = 1 
ORDER BY O1.lvl 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,177评论 2 89
  • 今年4月1日,奶奶离开我们整整33年了。看着奶奶的照片,我回忆起了奶奶和我们在一起的一幕幕,仿佛看...
    晓泛阅读 3,101评论 4 4
  • 世情薄,人情恶,雨送黄昏花易落。晓风干,泪痕残,欲笺心事,独语床栏。难,难,难。 人成各,今非昨,病魂常似千...
    ll陸莉阅读 3,180评论 4 3
  • 读经时间: 2017年2月11日 星期六 晴 读经人员: 妈妈 读经内容: 《易经》、《诗词启蒙》、《黄帝内经...
    161d968e601f阅读 1,387评论 0 0
  • 这是北美之北“新爸五年计划”的第二篇文章。更多内容请点击关注“我们俩的对话”。如果你跟北美之北一样想做一个懂英语的...
    北美之北阅读 4,046评论 7 15

友情链接更多精彩内容