sql 递归的写法
来源:互联网 发布:淘宝网禁止发布的商品 编辑:程序博客网 时间:2024/06/08 13:13
sql实际应用-递归查询
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方面的知识,案例一切以实际工作演变而来。
相关网址:http://www.cnblogs.com/zjflove/p/4245990.html
0 0
- sql 递归的写法
- DB2 递归SQL写法
- SQL 递归写法
- sybase ASA BOM的递归写法 与 SQL的递归写法
- SQL with as 的用法 以及递归函数的写法
- SQL with as 的用法 以及递归函数的写法
- SQL with as 的用法 以及递归函数的写法
- SQL with as 的用法 以及递归函数的写法
- SQL with as 的用法 以及递归函数的写法
- SQL with as 的用法 以及递归函数的写法
- SQL Server 2005中递归查询的写法
- 递归的写法
- 递归函数的写法
- java递归的写法
- SQL with as 的用法 以及递归函数的写法 递归层次查询
- SQL 递归写法 (oracle+db2)
- 递归与非递归的各种写法
- DFS的非递归写法
- 源代码管理的基本操作
- 关于C语言输出格式符中的传值问题
- Windows下Nginx+Tomcat整合的安装与配置
- 直接连接的网络
- 第一次配置mysql是出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- sql 递归的写法
- 插值
- Java程序设计基础
- SVM的几个好的博客地址
- Java - zookeeper 服务注册发现
- 使用mysqladmin命令修改Mysql密码
- 1020 Prime Ring Problem
- Oracle中修改某个字段可以为空
- 微信公众号第三方开发之三创建一键登录页授权给第三方平台