查询获取树下的所有节点
2012-07-05 16:49
351 查看
--构造测试数据: 只作演示用
CREATE TABLE [dbo].[Tim_LinqTable](
[Id] int PRIMARY KEY IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
[Parent] int NOT NULL,
)
GO
INSERT INTO [Tim_LinqTable]
SELECT 'A',0 UNION ALL
SELECT 'A1',1 UNION ALL
SELECT 'A2',1 UNION ALL
SELECT 'B1',2 UNION ALL
SELECT 'B2',3 UNION ALL
SELECT 'C1',4 UNION ALL
SELECT 'C2',4 UNION ALL
SELECT 'D1',5 UNION ALL
SELECT 'D2',5 UNION ALL
SELECT 'D3',5
GO
WITH temp
AS
(
SELECT * FROM [Tim_LinqTable] WHERE Parent = 3
UNION ALL
SELECT m.* FROM [Tim_LinqTable] AS m
INNER JOIN temp AS child ON m.Parent = child.Id
)
SELECT * FROM temp
GO
--查询 Parent=3 的所有子数据结果如下:
Id Name Parent
----------- -------------------------------------------------- -----------
5 B2 3
8 D1 5
9 D2 5
10 D3 5
(4 row(s) affected)
CREATE TABLE [dbo].[Tim_LinqTable](
[Id] int PRIMARY KEY IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
[Parent] int NOT NULL,
)
GO
INSERT INTO [Tim_LinqTable]
SELECT 'A',0 UNION ALL
SELECT 'A1',1 UNION ALL
SELECT 'A2',1 UNION ALL
SELECT 'B1',2 UNION ALL
SELECT 'B2',3 UNION ALL
SELECT 'C1',4 UNION ALL
SELECT 'C2',4 UNION ALL
SELECT 'D1',5 UNION ALL
SELECT 'D2',5 UNION ALL
SELECT 'D3',5
GO
WITH temp
AS
(
SELECT * FROM [Tim_LinqTable] WHERE Parent = 3
UNION ALL
SELECT m.* FROM [Tim_LinqTable] AS m
INNER JOIN temp AS child ON m.Parent = child.Id
)
SELECT * FROM temp
GO
--查询 Parent=3 的所有子数据结果如下:
Id Name Parent
----------- -------------------------------------------------- -----------
5 B2 3
8 D1 5
9 D2 5
10 D3 5
(4 row(s) affected)
相关文章推荐
- MyBatis--关联关系查询--自关联--一对多--查询指定父节点及其所有子
- mysql查询所有子节点,后代
- XDocument 获取包括第一行的声明(版本、编码)的所有节点
- 使用with as查询某节点的所有父节点(包含自己)
- 父子关系表中查询某父节点的所有子节点,同时查询结果包含父节点的名字
- linux C如何获取服务器节点上所有网口的ip地址
- 获取DOM节点的所有方法
- Mybatis之高级映射collection (递归查出树形数据之查询部门及部门下所有人员 单节点)
- Oracle 查询所有叶节点
- MSSQL 查询所有节点及其所有子节点的函数
- VB.Net程序设计:获取TreeView CheckBox所有选中的节点值
- oracle数据库查询:查询父节点数据下的所有终结子节点
- MySQL中进行树状所有子节点的查询 . mysql根据父id 查询所有的子id
- 递归获取treeview选中父节点的所有子节点
- jquery 获取所有兄弟节点、父亲兄弟的子节点以及自动触发事件
- MySQL中进行树状所有子节点的查询
- js 获取元素所有兄弟节点的实现方法
- XDocument 获取包括第一行的声明(版本、编码)的所有节点
- php递归无限级分类【先序遍历算】,获取任意节点下所有子孩子
- 获取某个树节点下所有叶子节点,同时要求叶子节点是同一类对象,要求返回该叶子节点对象的id集合