递归查询所有子级
来源:互联网 发布:ncbi数据库下载 编辑:程序博客网 时间:2024/06/01 10:31
1、既然要谈到sql,数据库表是必须的
2、数据结构
3、获取某个节点的所有子节点
传统的写法(sql2000) 很麻烦,暂且就不写了
来看看CTE的写法
CREATE PROC sp_getTreeById(@TreeId int)ASBEGIN WITH cteTree AS ( --第一个查询作为递归的基点(锚点) SELECT * FROM TuziTree WHERE Id = @TreeId UNION ALL --第二个查询作为递归成员, 下属成员的结果为空时,此递归结束。 SELECT TuziTree.* FROM cteTree INNER JOIN TuziTree ON cteTree.Id = TuziTree.ParentId) SELECT * FROM cteTree END测试一下
exec sp_getTreeById @TreeId=1001结果
-----------------------------------------------
4、使用节点路径来做(每个节点路径都保存自身的路径和所有父节点的路径=自己和所有父节点的关联)
5、既然有个路径
那么查询其所有子节点 只需要 where nodePath like '/1001/%'了
这样就会简单很多,加上索引。
总结:
如果在性能的需要上,我们可以采用按需加载,点击节点时候 才会加载其所有子节点。
如果在变化不大的情况下,可以采用缓存 。这样的处理 可以满足很多业务需求。
良好的表设计会给后期的开发以及需求变化 带来更多的便利。
下次继续总结sql方面的知识,案例一切以实际工作演变而来。
0 0
- 递归查询所有子级
- mysql -- 递归查询所有子节点
- SQLServer 递归查询 根据子表查询所有父表
- sql 2005 递归 查询部门所有子部门 with关键字
- SQL 语句递归查询 With AS 查找 所有 子节点
- java递归查询公司下所有部门及子部门
- 递归查询---当前分类的下的所有子分类
- SQL 语句递归查询 With AS 查找所有子节点
- java递归查询分类及分类下所有子分类
- ztree递归查询某节点下的所有子节点
- 根据根据子id查询所有的父id,根据父id 递归查询所有下级,
- 遍历物体所有子级(递归)
- mysql读取树形结构所有子节点 mysql递归查询 详解 存储过程详解 查询所有子节点详解
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- MySQL 递归查询树状表的所有子节点、所有父节点具体实现
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)
- 【LeetCode】217Contains Duplicate
- Zookeeper超级用户
- Slim Span
- 问题之~SecureCRT终端只能输出无法输入
- Github上的600多个iOS开源类库
- 递归查询所有子级
- 数根
- 异步处理框架样例代码
- 企业总机技术架构
- 如何在xcode7上免开发者账号进行ios程序真机测试
- Java实现Date日期加一天
- java里为什么使用nextLine();没有等我输入就“跳过了”?
- 信息检索(IR)的评价指标介绍 - 准确率、召回率、F1、mAP、ROC、AUC
- 【LeetCode】242Valid Anagram