oracle中sql递归查询,sql – Oracle中的递归查询

我是PLSQL更高级主题的新手,所以希望有人可以帮助我.

问题:

我有一个表,其中包含管理员和用户之间发送的消息.该表有一个带有FK的message_parent到同一个表message_id字段:如果填充了该字段,则表示该消息是作为对前一个消息的回复发送的.我需要选择属于同一个对话的所有消息并显示它们.这可以通过单个查询完成,还是需要一个程序来处理这种逻辑?据我所知,它需要递归,因为我正在搜索的message_id总是在变化

消息表:

|message_id|parent_id|message_content|

|----------|---------|---------------|

|101 |100 | foo |

|100 |97 | bar |

|99 |(null) | Left out |

|97 |(null) | baz |

所以选择message_content的正确查询应该返回“baz”,“bar”和“foo”而不是“left out”(因为baz是原始消息).

如果存在例如,这将是简单的.只有两条可以捆绑在一起的消息,例如一个thread_id列,它会链接同一个’线程’中的所有消息,但是随着parent_id的不断变换,我很难搞清楚它.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值