表内同如下:字段A是字段B的父节点
字段B是字段C的父节点
字段C是字段D的父节点字段A 字段B 字段C 字段D
1 2 3 a
1 2 3 b
1 2 4 c
1 2 4 d
1 2 4 e
1 3 5 o
1 3 5 p
1 3 5 l
2 6 7 a
2 6 8 b
要求查出的结果如下: 1 2
1 2 3
1 2 3 a
1 2 3 b
1 2 4
1 2 4 c
1 2 4 d
1 2 4 e
1 3
1 3 5
1 3 5 o
1 3 5 p
1 3 5 l
2 6
2 6 7
2 6 7 a
2 6 8
2 6 8 b
求助各位,这种层次查询有没有什么好的方法
字段B是字段C的父节点
字段C是字段D的父节点字段A 字段B 字段C 字段D
1 2 3 a
1 2 3 b
1 2 4 c
1 2 4 d
1 2 4 e
1 3 5 o
1 3 5 p
1 3 5 l
2 6 7 a
2 6 8 b
要求查出的结果如下: 1 2
1 2 3
1 2 3 a
1 2 3 b
1 2 4
1 2 4 c
1 2 4 d
1 2 4 e
1 3
1 3 5
1 3 5 o
1 3 5 p
1 3 5 l
2 6
2 6 7
2 6 7 a
2 6 8
2 6 8 b
求助各位,这种层次查询有没有什么好的方法
select * from(
select a,b,' ' as c,' ' as d from tbl group by a,b
union all
select a,b, c,' ' as d from tbl group by a,b,c
unoin all
select a,b,c,d from tbl)
order by a,b,c,d
-- -- -- --
1 2 3 a
1 2 3 b
1 2 4 c
1 2 4 d
1 2 4 e
1 3 5 o
1 3 5 p
1 3 5 l
2 6 7 a
2 6 8 b 已选择10行。SQL> select distinct a,b,null,null from tb
2 union all
3 select distinct a,b,c,null from tb
4 union all
5 select distinct a,b,c,d from tb
6 order by 1,2,3 nulls first,4 nulls first;A B NU NU
-- -- -- --
1 2
1 2 3
1 2 3 a
1 2 3 b
1 2 4
1 2 4 c
1 2 4 d
1 2 4 e
1 3
1 3 5
1 3 5 l
1 3 5 o
1 3 5 p
2 6
2 6 7
2 6 7 a
2 6 8
2 6 8 b 已选择18行。
union
select distinct a,b,c,null from tbl t connect by b = prior c
union
select distinct a,b,c,d from tbl t connect by c = prior d;
一般这样的表应该只需要两个字段 父节点和子节点,前三个字段是可以写进一个字段的.
难道楼主给的表就是一个已经处理过一次的?
不知道楼主想要什么样的方法?
根据你给的 字段A是字段B的父节点
字段B是字段C的父节点
字段C是字段D的父节点 这样的规律 三楼的方法我觉得就是最好的了!