/* 标题:SQL SERVER 2005中查询指定节点及其所有子节点的方法(表格形式显示) 作者:爱新觉罗·毓华(十八年风雨,守得冰山雪莲花开) 时间:2010-02-02 地点:新疆乌鲁木齐 */ create table tb(id varchar(3) , pid varchar(3) , name nvarchar(10)) insert into tb values('001' , null , N'广东省') insert into tb values('002' , '001' , N'广州市') insert into tb values('003' , '001' , N'深圳市') insert into tb values('004' , '002' , N'天河区') insert into tb values('005' , '003' , N'罗湖区') insert into tb values('006' , '003' , N'福田区') insert into tb values('007' , '003' , N'宝安区') insert into tb values('008' , '007' , N'西乡镇') insert into tb values('009' , '007' , N'龙华镇') insert into tb values('010' , '007' , N'松岗镇') go DECLARE @ID VARCHAR(3) --查询ID = '001'的所有子节点 SET @ID = '001' ;WITH T AS ( SELECT ID , PID , NAME FROM TB WHERE ID = @ID UNION ALL SELECT A.ID , A.PID , A.NAME FROM TB AS A JOIN T AS B ON A.PID = B.ID ) SELECT * FROM T ORDER BY ID /* ID PID NAME ---- ---- ---------- 001 NULL 广东省 002 001 广州市 003 001 深圳市 004 002 天河区 005 003 罗湖区 006 003 福田区 007 003 宝安区 008 007 西乡镇 009 007 龙华镇 010 007 松岗镇 (10 行受影响) */ --查询ID = '002'的所有子节点 SET @ID = '002' ;WITH T AS ( SELECT ID , PID , NAME FROM TB WHERE ID = @ID UNION ALL SELECT A.ID , A.PID , A.NAME FROM TB AS A JOIN T AS B ON A.PID = B.ID ) SELECT * FROM T ORDER BY ID /* ID PID NAME ---- ---- ---------- 002 001 广州市 004 002 天河区 (2 行受影响) */ --查询ID = '003'的所有子节点 SET @ID = '003' ;WITH T AS ( SELECT ID , PID , NAME FROM TB WHERE ID = @ID UNION ALL SELECT A.ID , A.PID , A.NAME FROM TB AS A JOIN T AS B ON A.PID = B.ID ) SELECT * FROM T ORDER BY ID /* ID PID NAME ---- ---- ---------- 003 001 深圳市 005 003 罗湖区 006 003 福田区 007 003 宝安区 008 007 西乡镇 009 007 龙华镇 010 007 松岗镇 (7 行受影响) */ drop table tb --注:除ID值不一样外,三个SQL语句是一样的。
相关推荐
以上就是在MySQL中通过自定义函数实现递归查询父级ID和子级ID的方法。这种方法虽然效率可能不如其他数据库系统中的递归查询语法,但对于有限的层级深度和不支持递归查询的MySQL版本,这是一种有效的解决方案。需要...
例如,如果你有一个文章分类表(`pcb_article_category`),并且每个分类都有一个父分类ID(`parentID`)字段,那么你可以通过递归或者循环的方式来获取指定分类的所有子级和孙级分类的ID。 在给定的代码示例中,`...
以下是如何查询当前部门(由`@id`参数指定)的所有子部门: ```sql WITH dept AS ( SELECT * FROM dbo.deptTab WHERE pid = @id UNION ALL SELECT d.* FROM dbo.deptTab d INNER JOIN dept ON d.pid = dept.id )...
例如,根据父级ID获取子级区域。同时,利用JavaScript或者其他后端技术,可以实现下拉框的联动效果。 4. **性能优化**:由于三级联动涉及大量的关联查询,可能需要对`parent_id`字段创建索引以提高查询速度。此外,...
parentId=123`,返回指定父级ID下的所有城市。这个接口的实现可能依赖于数据库查询,如: ```sql SELECT * FROM province_city_area WHERE parent_id = ?; ``` 4. **前端交互**:在前端页面上,使用JavaScript...
在MyBatis中,`collection`标签用于处理一对多的关系映射,比如在查询帖子时获取其所有的一级评论,以及这些评论下的所有子评论。我们可以通过编写映射XML文件,定义一个嵌套的查询,其中`collection`标签内的内容...
调用存储过程并传递根节点ID,将获取所有子节点的数据。 **方法三:自连接查询(适用于有限层次)** 如果树的层次深度是已知的且有限,可以使用多次`LEFT JOIN`来查询所有子节点。例如,对于深度为4的树,可以...
通过递归查询,我们可以获取到所有级别的菜单项,包括它们的父级和子级。 在MySQL中,我们可以使用自连接来实现递归查询。假设我们有一个名为`menus`的表,包含`id`(主键)、`parent_id`(父菜单ID)和`name`...
项目中遇到一个需求,要求查处菜单节点的所有节点,在网上查了一下,大多数的方法用到了存储过程,由于线上环境不能随便添加存储过程, 因此在这里采用类似递归的方法对菜单的所有子节点进行查询。 准备 创建menu表...
可以通过SQL查询来获取指定父级ID的所有子级城市。 3. ListView配置:为每一级城市创建一个ListView,设置适配器以显示城市列表。适配器通常继承自BaseAdapter,重写其中的方法如`getView()`来定制每个列表项的视图...
3. **查找指定节点的所有直属及子级直属节点**:这时就需要使用`START WITH...CONNECT BY`语法,例如`START WITH ID = some_id CONNECT BY SJFLID = PRIOR ID`。这个查询会递归地找到指定节点及其所有子节点。 4. *...
后台语言可以是Java、Python、PHP等,这里没有指定具体语言,但实现原理相似:接收请求,解析参数,执行SQL,然后将查询结果转换为JSON格式返回给前端。 前端实现是用户与无限级下拉框交互的界面。前端库如React、...
1. **Ajax通信**:通过Ajax技术实现实时通信,获取服务器端的数据。 2. **JavaScript处理**:利用JavaScript对页面元素进行控制,包括显示、隐藏、动态添加内容等。 3. **服务器端逻辑**:后端提供必要的接口服务,...
在VS2005开发环境中,使用AjaxPro可以轻松实现这种功能,并且与Access数据库配合,可以方便地获取和处理数据。 AjaxPro是Microsoft ASP.NET AJAX的一种扩展,它提供了更强大的服务器端组件,支持异步调用和事件处理...
在C#代码中,你需要创建一个WebMethod或PageMethod,接收父级ID作为参数,然后查询数据库并返回子级的选项。 2. **ServicePath**:此属性用于指定AJAX服务的路径,通常是WebService或者PageMethod。 3. **...
- **查询表空间基本信息**:获取数据库中所有表空间的基本信息。 ```sql SELECT * FROM DBA_TABLESPACES; ``` #### 三、用户管理 - **创建用户**:创建新的数据库用户,并指定其默认表空间。 ```sql CREATE...
接下来是MyBatis的XML配置,定义了一个名为`queryByParentId`的SQL查询,其作用是根据上级主键(`area_parent_id`)来获取子级区域的信息。这个查询将用于从服务器端获取需要展示在下拉框中的数据。 在HTML页面中,...
- 构建SQL查询语句,从数据库中查询所有`pid`等于父级ID的子级数据。 - 执行SQL查询,并通过`while`循环遍历结果集。 - 将查询结果的`id`和`text`字段组合成HTML的`option`元素,并拼接成完整的下拉菜单HTML代码。 ...
用户点击列头时,GridView会自动触发Sorting事件,我们可以在该事件中编写代码执行SQL查询,按照指定的字段重新排序数据。 在"EditNestedGridView"这个文件中,可能包含了实现上述功能的代码示例或教程。这个文件...
- 获取当前评论对象的所有“子评论”对象。 - 遍历这些“子评论”,根据条件调整它们的属性,如`post`、`level`、`parent`等。 - 实现递归处理,确保多级“子评论”也能得到正确的处理。 5. **事件触发** - 在...