我是SQL的新手,但我想做的是评论回复功能。例如,假设您有一个 profile_id为11 ,并且您发布了帖子,其post_id为339 。如果其他几个人对该帖子发表评论,那么我想向您展示自该评论以来对该帖子的最新评论。查看下面的第一张图片,即您可以看到中间发布的用户11。我希望收到关于该帖子的最后评论,该帖子指出 blah blah ,因为用户11对此发表评论。
这是表格 如果我是用户11,我想只看到我评论的同一帖子/帖子上发布的最新评论。这意味着我想看到一篇文章说" Blah Blah"但是我只是得到了我的评论。任何建议都会很棒。我正在使用Postgres 9.6
答案 0 :(得分:1)
下一个查询将解决您的问题:
select cr.id, cr.stream_id, cr.comments
from comment_replies cr
where
cr.id in ( select cr2.id
from comment_replies cr2
where
cr2.last_reply_timestamp = (select max(cr3.last_reply_timestamp)
from comment_replies cr3
where cr3.stream_id=cr2.stream_id
)
and cr2.stream_id=cr.stream_id
)
and cr.stream_id in (select cr2.stream_id
from comment_replies cr2
where cr2.profile_id=11)
答案 1 :(得分:0)
SELECT * FROM comment_replies ORDER BY last_reply_timestamp DESC LIMIT 1;
这将使用Order By
从最新到最旧排序。由于LIMIT 1