树形结构的表中,如何返回一个儿子的所有上级或一个上级的所有子子孙孙?
dejoy 2006-07-03 04:25:29 一个表T,ParentID -1是最上级
ParentID ID
-1 1
1 2
1 3
2 8
8 12
生成的树是这样的:
1-|
2-|
| 8-|
| 12
3-
1.现在如何返回一个值的所有上级列表,如返回12的所有上级
ID
8
2
1
-1
2.如何返回一个上级的所有下级,如返回2的所有下级
ID
8
12
这么做主要是判断谁和谁的上下级关系。
附SQL:
CREATE TABLE T (
ParentID INTEGER,
ID INTEGER
)
GO
COMMIT
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(-1, 1)
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(1, 3)
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(1, 4)
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(1, 2)
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(2, 8)
GO
INSERT INTO [T] ([ParentID], [ID])
VALUES
(8, 12)
GO
COMMIT
GO