【发布时间】:2012-06-23 01:01:51
【问题描述】:
我在使用 connect by 时遇到问题。
我有一个查询,通过它我检索了几列,包括这三个:
- 身份证
- 父母ID
- 对象ID
现在对于相同的 ID 和 parentID,有多个关联的对象,例如
ID ParentID ObjectID
1 0 112
1 0 113
2 0 111
2 0 112
3 1 111
4 1 112
我正在尝试使用connect by,但我无法在适当的层次结构中获得结果。我需要它如下所示的方式。采取ID-parentID 组合,显示所有带有ID-parentID 的行,然后显示这个ID 的所有子代,即parentID=ID
ID ParentID ObjectID
1 0 112
1 0 113
3 1 111
4 112
2 0 111
2 0 112
select ID,parent_id, object_id from table start with parent_id=0
connect by prior id=parent_id order by id,parent_id
上面的查询没有产生我需要的适当层次结构。
【问题讨论】:
-
输入是
0?你想要前两个级别的孩子吗?我不明白你想要达到什么目的。 -
@FlorinGhita 我想获取分层格式的数据。但事情与 ID 和 Parent ID 一起,我可以有多个对象 ID。在这种情况下如何使用 connect by。
-
我认为您需要嵌套查询。内部查询将给出 Id 和 Parent Id 组合,外部查询将获取所有相关记录。
-
@padmarag 我正在使用嵌套查询。内部查询将产生三列数据,如上所示。但在那之后我无法应用 connectby 来获得确切的层次结构。
标签: oracle connect-by