查询以检索消息线程

鞭毛

我正在尝试创建一个查询,该查询将整个消息线程按升序排序,并且所有消息线程也按升序排序,因此它看起来像这样

posted 5 days ago  
    posted 2 days ago
    posted 1 hour ago

posted 9 days ago
    posted 4 hours ago
    posted 2 hours ago

posted 20 days ago
    posted 7 days ago

我已经尝试了一段时间,但仍然无法获得预期的输出。

我在按desc排序的每个消息线程中都有消息,但是我不知道如何按desc排序所有消息

在此处输入图片说明

我应该如何处理?我是否应该首先获取每个消息线程的rootnode,并使用这些rootnode的thread_ids执行查询,然后获取整个消息线程?(例如在非SQL语言中使用for循环)

劳伦兹·阿尔伯

使用窗口函数获取主题中第一条帖子的日期。然后,您可以按此订购。

SELECT *
FROM (SELECT *,
             first_value(date_posted)
                OVER (PARTITION BY thread_id
                      ORDER BY is_root IS NOT TRUE) AS leader_date 
      FROM event_comments) AS comments_with_leaderdate
ORDER BY leader_date DESC, date_posted DESC;

这利用了事实FALSE < TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章