sql 递归查询

1、既然要谈到sql,数据库表是必须的

 

2、数据结构

   

3、获取某个节点的所有子节点

    传统的写法(sql2000) 很麻烦,暂且就不写了

    来看看CTE的写法

   

复制代码
CREATE PROC sp_getTreeById(@TreeId int)
AS
BEGIN 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方面的知识,案例一切以实际工作演变而来。

转载于:https://www.cnblogs.com/nxxshxf/p/5590923.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430455.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海交大研究生计算机考研真题,2011年上海交通大学计算机研究生机试真题

Oracle 约束(constraint)的几个参数的小研究ORACLE中,约束分deferred 跟 immediate 2种: deferred:如果 Oracle 在事务提交(commit)时才对约束执行检查,则称此约束是延迟的(deferred)。如果数据违反了延迟约束,提交操作将导致事务…

正则表达式在iOS中的运用

http://my.oschina.net/u/1245365/blog/376517 http://my.oschina.net/joanfen/blog/415076 摘要 做项目时,经常要检测一个字符串是否合法,这时,选择正则表达式准没错! 正则表达式 iOS目录[-] 一、什么是正则表达式二、正则表达式…

计算机画画教程,【推荐】初学者电脑画画教程

电脑绘画教程,今天跟大家分享一下,如何学电脑绘画以及关于零基础学板绘是不是一定要美术基础的问题~~这也是很多学习电脑绘画小伙伴的疑虑。如果你想快速提升自己的绘画水平,并且绝对的不怕辛苦,欢迎挑战轻微课魔鬼特训班&#xf…

python 中调用shell命令

subprocess模块 根据Python官方文档说明,subprocess模块用于取代上面这些模块。有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用subprocess启动子进程来干活。 [python] view plaincopy >>&…

计算机数学基础模拟试题,计算机数学基础(A)模拟试题.doc

计算机数学基础(A)模拟试题计算机数学基础(A)模拟试题一、单项选择题(每小题3分,共21分)1.设,则( ).A. B.C. D.2.若是由及围成,则( )A. B. C. D.3.A,B都是阶矩阵(,则下列…

微型计算机在温室管理中的应用初探,文献综述-测控051-陈杰.doc

文献综述-测控051-陈杰基于单片机温室大棚监控系统的软件设计文献综述陈杰(电子信息工程学系 指导教师: 黄永华)一、研究背景及动态 中国作为一个农业大国,农业的发展状况至关重要,要发展农业就必须走农业现代化这条道路。随着国民经济的迅速…

设计计算机程序时 要考虑计算的过程,算法和程序设计练习题复习课程(6页)-原创力文档...

算法和程序设计练习题一、选择题:1、使用计算机解题的步骤,以下描述正确的是:__ B__。A .正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行B .正确理解题意…

Objective-C浮点数转化整数(向上取整、向下取整)

Objective-C拓展了C,自然很多用法是和C一致的。比如浮点数转化成整数,就有以下四种情况。 1.简单粗暴,直接转化 float f 1.5; int a; a (int)f; NSLog("a %d",a); 输出结果是1。(int)是强制类型转化,丢弃…

毕业作文计算机系统与维护,修电脑作文600字

星期二的上午第一节是语文课。预备铃声刚响语文老师就走进教室。照常打开了电脑,可是教室电脑的屏幕一片黑色,什么也看不到。老师用手敲了敲触摸屏,电脑的屏幕没有任何反应。同学们就七嘴八舌的说了起来,“电脑中毒啦,…

Mybatis为实体类定义别名typeAliases

首先为大家科普一下,Mybatis事实上就是Ibatis。它是由Ibatis更名而来。 最近在学Mybatis的知识,在讲到为实体类定义别名是有两个小知识与大家共勉。 为实体类定义别名一般有以下几个部分组成 1.在Mybatis的配置(一般为conf.xml)文…

一台计算机数据丢失与恢复,如何在不丢失数据的情况下将iPhone与多台计算机同步-万兴数据恢复-万兴恢复专家...

第2部分:将iPhone与多台计算机与iTunes同步如果用户对iPhone有很强的控制欲,并且不想尝试使用任何新软件来同步需求,那么iTunes也可用于将iPhone与多台计算机同步。虽然在第一时间,这可能听起来和iTunes的职能相悖,但实…

iOS OC语言: Block底层实现原理

来源http://www.wtoutiao.com/p/11dgbk4.html 先来简单介绍一下Block Block是什么? 苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,Block可以在任何时候执行。 Block和函数的相似性&#xf…

计算机过程控制系统教材,过程控制系统-样章试读.PDF

过程控制系统-样章试读.PDF高等院校教材过程控制系统陈夕松  汪木兰  主编李  奇      主审KB2北  京内 容 简 介本书以过程控制系统组成和结构为线索,介绍了过程控制的基本概念,过程控制常用仪表的原理和工程选用,过程对象及建模方法…

sufeinet

http://www.sufeinet.com http://tool.sufeinet.com/ 转载于:https://www.cnblogs.com/shiningrise/p/5603557.html

计算机如何取消还原卡,如何关闭硬件还原卡?

2009-11-06有什么方法可以让电脑每次关机都可以自动删1)打开控制面板/性能维护/管理工具/双击本地安全策略,在右侧选“关机清理虚拟内存页面文件”双击他选“已启用”按应用重启即可。2)建议下载超级兔子是免费的小巧著名的软件,选择清理系统垃圾(全选)&…

服务器虚拟主机推荐,免费的虚拟主机推荐

写在前面:免费虚拟主机免费虚拟主机是指IDC服务商“免费”为站长提供网页寄存服务。免费虚拟主机--用于制作免费个人网站,是学习网页设计的好方法。虚拟主机就是指网站空间,是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等&…

如何优化虚拟桌面

虚拟桌面代理安装的具体优化: 禁止Windows 自动更新[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update]"AUOptions"dword:00000001"ScheduledInstallDay"dword:00000000"ScheduledInstallTime&qu…

服务器配置和性能,服务器性能配置(硬件)

原标题:服务器性能配置(硬件)1.CPU大部分的CPU在同一时间内只能运行一个线程,但是超线程的处理器可以在同一个时间运行多个线程,可以利用处理前超线程特性提高系统性能。虽然采用超线程技术能同时执行两个线程,但它并不象两个真正…

js/css文件修改后浏览器本地缓存解决

本文实例讲述了让html页面随js的修改来更新缓存的实现方法。分享给大家供大家参考。具体实现方法如下: 很多朋友都会碰到这样的情况:如果我们页面加载了js的话下次打开时也会是调用这个js缓存文件,但对于我们修改后调试和发布是非常的不方便了…

图片自动翻转css代码,用css实现图片翻转(示例代码)

简介这篇文章主要介绍了用css实现图片翻转(示例代码)以及相关的经验技巧,文章约1193字,浏览量447,点赞数1,值得参考!用css实现图片翻转.flip-container {perspective:1000px;}.flip-container:hover .flipper {transfo…