m0_56789428 2023-08-09 21:34 采纳率: 94.9%
浏览 5
已结题

mysql查询树型结构表,前三级数据

mysql查询树型结构表,前三级数据
树型表 主键id 名字name 父级id parent_uuid
SELECT bs.id as id,bs.name as name,bs.parent_uuid as parent_id from bs;
第一个数据的父级id是 root
求前三级数据有哪些?
求所有的第四级数据有哪些?
我用了inner join 内连接 但是写的太长了 不知道有没有更好的方法?

  • 写回答

3条回答 默认 最新

  • 这一次有糖 2023-08-10 14:19
    关注

    用递归啊,你的需求说出来不就是常用思路了嘛,比如

    WITH Cte AS (
      SELECT id, name, parent_uuid, 1 AS level
      FROM bs
      WHERE parent_uuid = 'root' 
      UNION ALL
      SELECT bs.id, bs.name, bs.parent_uuid, tree.level + 1
      FROM bs
      INNER JOIN tree ON bs.parent_uuid = tree.id
    )
    SELECT id, name, parent_uuid
    FROM Cte
    WHERE level <= 3;
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月19日
  • 已采纳回答 8月11日
  • 修改了问题 8月10日
  • 创建了问题 8月9日