求救论坛的帖子新建时间与回复时间的倒序按混合时间排列问题

QWER123qazqwe 2010-11-17 03:33:07
表:posts
posts_id posts_title posts_content posts_time
1001 好人一枚 好人 2010-11-10
1002 肚子饿了 开吃啦 2010-11-11
1003 宵夜啦 宵夜喝粥 2010-11-12
1004 好酒当歌 歌手啊 2010-11-13
表:reply
reply_id reply_content reply_time
1001 真的好人? 2001-1-5
1002 弥漫着 2010-11-12
1003 当歌啦 2010-11-13

要求结果显示的为:怎么实现???下面的效果
--倒序排列,两表的格式是不同的
posts_id posts_title newtime
1004 好酒当歌 2010-11-13 ->有回复,按回复时间
1003 宵夜啦 2010-11-12 ->没回复,按建贴时间
1002 肚子饿了 2010-11-11 ->有回复,按回复时间
1001 好人一枚 2010-11-10 ->有回复,按回复时间

...全文
101 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
QWER123qazqwe 2010-11-17
  • 打赏
  • 举报
回复
调试了下,按建贴时间倒序排列,但帖子回复之后,帖子位置不变,无法排在第一位,即在倒序排列中,最新回复时间没有将建贴时间替换掉
symbol_bc 2010-11-17
  • 打赏
  • 举报
回复
楼主如果你一点脑子都不动的话,谁也没办法帮你,只改一点就可以了嘛!!

select a.posts_id,a.posts_title,
(case ISNULL(b.reply_id,0) when 0 then a.posts_time else a.posts_time end ) newtime from Posts a
left join reply b on b.reply_id = a .posts_id
order by newtime desc
QWER123qazqwe 2010-11-17
  • 打赏
  • 举报
回复
不是按帖子的ID倒序排列,
我想实现的是 有回复时间的帖子就取最后的回复时间,没回复时间的帖子就将新建帖子时间补上,
两者混合在一起按时间倒序排列
fihuang 2010-11-17
  • 打赏
  • 举报
回复
建议楼主在帖子表里增加一个字段“最后回复时间” 以后获取帖子列表的时候 不需要做表连接 可以减轻数据库负担
symbol_bc 2010-11-17
  • 打赏
  • 举报
回复

select a.posts_id,a.posts_title,(case ISNULL(b.reply_id,0) when 0 then a.posts_time else a.posts_time end ) newtime from Posts a
left join reply b on b.reply_id = a .posts_id
order by a.posts_id desc
ltcszk 2010-11-17
  • 打赏
  • 举报
回复
创建的时候回复时间=创建时间
丰云 2010-11-17
  • 打赏
  • 举报
回复
case语句,
没有回复的就把建贴时间补上,
然后按建贴时间排序.

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧