从子记录中获取所有父记录

时间:2013-04-02 13:29:34

标签: oracle

我有一个与此类似的oracle表

表名:注

NoteID(PK)        NoteText    ParentNoteID
1                 x           - 
2                 y           1
3                 z           2

在这里,我需要在notetext上执行类似的查询, note.note_text喜欢'%z%'它仅取出第三条记录。

我希望在获得第三条记录之后记录它的父母的记录。通过类似的查询匹配我需要通过观看返回 parentNoteID。第3条记录的父记录为2,父记录为2,因此应该获取结果 所有三个记录。

为了扩展这一点,如果我的查询匹配两个子记录,显然它应该获得两者的所有父记录。

示例:

NoteID(PK)  NoteText    ParentNoteID
1           x           -  
2           y           1
3           z           2
4           a           -
5           b           4
6           z           5

note.note_text like '%z%'应拉出以上所有6条记录。

提前致谢 的Eswar。

1 个答案:

答案 0 :(得分:5)

你可以使用连接方法来做到这一点。

例如

之类的东西
select *
  from tbl1
 start with note_text like '%z%'
 connect by note_id = prior parent_note_id

会这样做。

示例小提琴:http://sqlfiddle.com/#!4/0c6ea/1