SELECT @r AS _id, (SELECT @r := `parent_id` FROM `sys_monitor_region` WHERE id = _id) AS parent_id, @l := @l + 1 AS lvl (SELECT @r :=5, @l := 0) vars, `sys_monitor_region` h WHERE @r <> 0) T1 JOIN `sys_monitor_region` T2 ON T1._id = T2.id ORDER BY T1.lvl DESC;

将圈中的地方改为所查询的条件,如parent_id

查询结果:

表 POI 有 字段 Title CityID 表City 有字段 ID Title ParentCityID(归属City) 求当 烟台下的所有PoiTitle (包含烟台下的子城市中的PoiTitle) 第一步先 查询 烟台下所有城市(PCityId指向烟台) CTE with cte_child(id,title,ParentCityId) as (select id,title,ParentCityId from CMSCity where Title=‘烟台’ union all 是否分支节点,通过判断该员工是否存在上级,并且上级是该员工的员工数量大于0,如果大于0表示该员工是分支节点,这里使用 sign() 函数返回标志。在员工表中,叶子节点指的是不是任何员工上级的员工,分支节点指的是自己是上级且还是某个员工的下属,根节点指的是没有上级的员工。同样这里使用 CTE 递归。SELECT a.EName 员工名,a.MGR 上级,b.SAL 上级薪水,B.Role 上级角色 FROM test.emps a。:员工A的上级是员工M,员工M的上级是员工B,员工B的上级是员工Z。 我们在项目开发过程,经常会遇到有文章分类分栏,菜单分类,视频分类等多级分类 那么这种多级分类我们在 数据 中又是如何设计的呢?在mybatis 查询 过程中又是如何多级 查询 的呢? 别着急,今年我们来解决这个需求, 当然,解决的方法有很多,这里我只介绍我自己使用的一种,有更好的方法可以评论区评论大家一起探讨 本次用到了 `Maven工程`、`Swagger`、`RESTful接口风格`、`MyBatis-Plus` with 自定义结果名称(Id,Name,Pid) as (   select Id,Name,Pid from 要 查询 的表名称where Id ='' --顶级的 查询 条件,要 查询 哪个父级的所有子级,条件就写哪个   union all   select 要 查询 的表名称.Id,要 查询 的表名称.Name,要 查询 的表名称.Pid from 要 查询 的表名称,自定义结果名称 where 要 查询 的表名称.Pid = 自定义结果名称.Id select * from 自定义结果名称; Id,Name,Pid .. select *          //要 查询 的字段 from table      //具有子接点id和父接点id的表 start with childid=id 数据 //给定一个开始 查询 的id(字段名 在最近的活字格项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子 查询 的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想 查询 所有...