任何人都可以帮助我进行此类查询。
我有:
posts
桌子comments
桌子
它们通过comments.post_id = posts.post_id
列链接。
我用户可以按过去的评论过滤帖子:
- 1小时
- 24小时
- 2天等。
如果用户选择显示过去 1 小时的帖子,但在此期间没有帖子,我们需要逐步进行:
为过去选择帖子1 hour
,如果为空 - 为过去24 hours
,如果为空 - 为过去2 days
,如果为空 - 自成立以来(无任何条件)。
谁能帮我建立这样的查询?
UPD
“按评论过滤帖子”是指按评论数排序。
所以实际上目标是请求“显示按过去 XXX 小时内留下的评论数排序的帖子”。
如果选择“过去一小时”,但过去 1 小时内没有留下评论的帖子,我们需要获取过去 24 小时内留下评论的帖子(按评论数排序)等等。
表结构
帖子:
- post_id
- 标题
- 内容
- 添加日期
评论
- comment_id
- 内容
- post_id
- 添加日期
所以链接是posts.post_id = comments.post_id
。
当用户查看过去一小时内评论最多的帖子时,我希望得到下一个结果:
posts.post_id | comments_count | posts.date_added | group
---------------+----------------+------------------+----------------
156 | 8 | 2013-04-02 | hour
154 | 3 | 2013-04-02 | hour
129 | 1 | 2013-03-10 | 24 hours
13 | 14 | 2013-02-18 | 48 hours
138 | 6 | 2013-03-29 | week
137 | 4 | 2013-03-29 | week
161 | 21 | 2013-04-11 | month
6 | 2 | 2013-01-24 | year
103 | 8 | 2013-03-02 | since inception
结果排序:
- 列表顶部是在过去一小时内发表评论的 2 个帖子,并按评论数排序。
- 接下来,我们放置在过去一天已发表评论的帖子。
- 下一个 — 2 天内评论的帖子
- 上周发表评论的帖子,再次按评论数排序
- 过去一个月
- 在过去的一年
- 在这个列表的最后,我们需要放置评论超过一年的文章,它们也应该按评论数排序。
提前致谢。