有关递归查询的问题

csuxp2008 2009-07-27 05:46:02
现有亲子关系表A(par_id,child_id)
数据如下:
par_id child_id
1 11
1 12
2 21
11 111
11 112
21 212
21 213
...

如何查询得到所有par_id的叶子节点,层次关系不确定,可能N多层(不需要中间的节点)

想要的结果如下:
par_id child_id
1 111
1 112
1 12
2 212
2 213
...

能否实现?
...全文
122 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianyazlf 2009-07-30
  • 打赏
  • 举报
回复
节点(A)和它的叶子(B)是否有 B like A||'%', 且B比A长 的关系啊?
tianyazlf 2009-07-30
  • 打赏
  • 举报
回复
节点(A)和它的叶子(B)是否有 A like B||'%' 的关系啊?
csuxp2008 2009-07-28
  • 打赏
  • 举报
回复
自己顶
csuxp2008 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 inthirties 的回复:]


你这里想要的是不是所有的根,和根最后一层的所有孩子呀。
[/Quote]

对的,就是这个要求

csuxp2008 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tianyazlf 的回复:]
仅显示第一层和他的叶子,
还是1---(N-1)层以及叶子啊?

1    1
2    22
还是
1  111
11  111
2  222
22  222
??
[/Quote]

仅显示第一层par_id以及最后一层叶子节点就可以了,中间的忽略
huowang 2009-07-27
  • 打赏
  • 举报
回复
如果节点的 id 能够标识该节点到根节点的路径,那么可以通过字符串的处理可以得到所以父节点的叶节点。

若节点id不能标记路径,这个就要一层一层的查,就非常麻烦了
inthirties 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 csuxp2008 的回复:]
现有亲子关系表A(par_id,child_id)
数据如下:
  par_id  child_id
    1        11
    1        12
    2        21
    11      111
    11      112
    21      212
    21      213
    ...

如何查询得到所有par_id的叶子节点,层次关系不确定,可能N多层(不需要中间的节点)

想要的结果如下:
    par_id  child_id
    1      111
    1      112
    1      12
    2      212
    2      213
    ...

能否实现?

[/Quote]

1 12 这一行应该是没有的吧

你这里想要的是不是所有的根,和根最后一层的所有孩子呀。
tianyazlf 2009-07-27
  • 打赏
  • 举报
回复
1 111
2 222
还是
1 111
11 111
2 222
22 222
??
tianyazlf 2009-07-27
  • 打赏
  • 举报
回复
仅显示第一层和他的叶子,
还是1---(N-1)层以及叶子啊?

1 1
2 22
还是
1 111
11 111
2 222
22 222
??
csuxp2008 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 fosjos 的回复:]
不理解?
select * from A order by par_id, child_id
[/Quote]

你没看清楚我的问题,我是要用到递归查询每一个par_id的叶子节点child_id
fosjos 2009-07-27
  • 打赏
  • 举报
回复
不理解?
select * from A order by par_id, child_id
csuxp2008 2009-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fosjos 的回复:]
order  by par_id, child_id
如果必要,可以加上to_char或者to_number
[/Quote]

可不可以写出完整的sql语句?
fosjos 2009-07-27
  • 打赏
  • 举报
回复
order by par_id, child_id
如果必要,可以加上to_char或者to_number

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧