SQL递归查询】的更多相关文章

网易新闻的盖楼乐趣多,某一天也想实现诸如网易新闻跟帖盖楼的功能,无奈技术不佳(基础不牢),网上搜索了资料才发现SQL查询方法有一种叫递归查询,整理如下: 一.查询出 id = 1 的所有子结点 with my1 as (select * from table where id = 1 union all select table.* from my1, table where my1.id = table.fatherId) select * from my1 结果包含1这条记录,如果不想包含,…
原文链接地址http://www.cnblogs.com/sweting/archive/2009/06/08/1498483.html 在工作中遇到一个问题,是需要sql递归查询的.不懂,于是到csdn上去问,那里的效率真是非常高,我以前也没在上面问过问题.   问题描述:   我有一个表结构如下:id upperid1     23     24     15     3 具体层次不知道,我想用递归sql语句把所有属于某个upperid的数据,包括它的子树,都读出去,请问应该子怎么写?   …
SQL递归查询(with cte as) with cte as(    select Id,Pid,DeptName,0 as lvl from Department    where Id = 2    union all    select d.Id,d.Pid,d.DeptName,lvl+1 from cte c inner join Department d    on c.Id = d.Pid)select * from cte 1 表结构 Id          Pid     …
比如表结构数据如下: Table:Tree ID Name ParentId 1 一级  0 2  二级 1 3  三级 2 4 四级 3 SQL SERVER 2005查询方法: //上查 with tmpTree as ( select * from Tree where Id=2 union all select p.* from tmpTree inner join Tree p on p.Id=tmpTree.ParentId ) select * from tmpTree //下查…
最近工作中遇到了一个问题,需要根据保存的流程数据,构建流程图.数据库中保持的流程数据是树形结构的,表结构及数据如下图: 仔细观察表结构,会发现其树形结构的特点: FFIRSTNODE:标记是否为根节点 FSTABLENAME:标记来源单据名称 FSID:标记来源单据分录ID FTTABLENAME :标记目标单据名称 FTID:标记目标单据分录ID 图中的流程为: 销售合同-->销售订单-->发货通知单-->销售出库单 首先想到的办法就是把流程数据取回来,然后代码构造流程图. 第一个思路…
sql Bom 递归查询: with t as(select * from Department where id=6union allselect a.* from Department a,t where a.ParentId=t.id)select * from t…
系统用到的组织机构树,要实现对当前节点以及其子节点的查询,数据库SQL要用到递归查询,这也是我第一次接触SQL的递归查询. 先说一下什么是递归查询,简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段:code,parent_code,那么通过表示每一条记录的parent是谁,就可以形成一个树状结构,用上述语法的查询可以取得这棵树的所有记录,其中: 条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树. 条件2 是连接条件,其中用PRIOR表示上一条记录…
今天用到了sql的递归查询.递归查询是CTE语句with xx as(....)实现的. 假如表Category数据如下. 我们想查找机枪这个子分类极其层次关系(通过子节点,查询所有层级节点).以下是查询语句 WITH tt AS ( SELECT CategoryId,Name,Parent,0 level FROM dbo.Category WHERE CategoryId=15 --定位点成员 UNION ALL SELECT c.CategoryId,c.Name,c.Parent,tt…
1.easyUI 的tree 修改节点: 我需要:切换语言状态,英文下, 修改根节点文本,显示英文. 操作位置:在tree的显示 $('#tree').tree(),onLoadSuccess事件方法中,参数:node,data(详见easyUI文档) 代码:                 var t = $(this);                                      if (data) {                         var troot = t…
with cte as ( select Id,Pid,DeptName,0 as lvl from Department where Id = 2 union all select d.Id,d.Pid,d.DeptName,lvl+1 from cte c inner join Department d on c.Id = d.Pid ) select * from cte 表结构 Id Pid DeptName ----------- ----------- ---------------…