树形结构表查询,只用一条SQL语句查询所有父级ID解决办法

Posted 游不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树形结构表查询,只用一条SQL语句查询所有父级ID解决办法相关的知识,希望对你有一定的参考价值。

在树形结构表查询中用得最多的就是查询指定分类的所有下级分类,这个性能比较好的解决方案是为分类加一个编码(路径)把父级的ID都拼接上,最后通过like \'x%\'就能把所有下级分类select出来。但是有时也会遇到反过来,找出指定分类的所有上级分类,这个情况尤其在分销或类传销的系统中最常见,因为他们分成都是上级分成,所以要找出指定人的上级集合。

下面分享一下我的解决方案(只用一条SQL语句。不用存储过程、函数):

有下面所在的新闻分类表。

ParentID为父级的ID。

下面要找出ID为52的所有上级分类,代码如下:

;with Tree as
(
select * from CMS_NewsCategory where CID=52
union all
select a.* from CMS_NewsCategory a join Tree b on a.CID=b.ParentID
)
select * from Tree

以上是关于树形结构表查询,只用一条SQL语句查询所有父级ID解决办法的主要内容,如果未能解决你的问题,请参考以下文章

mysql树形结构的查询案例

Oracle--树形自关联表查询SQL

oracle sql语句 显示树形结构

如题:如何用一条SQL语句按输入的参数进行判断执行查询数据

mysql:只用一条sql语句,如何查出一个表里,不同条件对应的数据条数

sql 怎么递归查询的方法: