在园子里看到一个文章,涉及到树形数据的递归查询,觉得有更好的方法,就随手写一个,以备用之 。问题描述。借用了adinet的问题。参见:http://www.jb51.net/article/28670.htm
今天做项目遇到一个问题,
有产品分类A,B,C顶级分类,
期中A下面有a1,a2,a3子分类.
但是a1可能共同属于A和B,然后我的数据库是这样设计的
id | name | parnet |
1 | A | 0 |
2 | B | 0 |
3 | a1 | 1,2 |
如果想要查询A的所有子类的话就要查询parent中包含1的,所以就萌生了这个办法.呵呵,
解决方案
解决方案
- with cte as
- (select * from tb where id='1'
- union all
- select tb.* from tb join cte on charindex(cast(cte.id as varchar(10)),tb.parentid)>0)
- select * from cte