日期:2014-05-18  浏览次数:20474 次

求一个论坛帖子排序sql语句
主贴表 Leave
id int
title
time
content

回复表 Reply
id
content
tid
time

Reply.tid=Leave.id

要求 这里有两个时间,也就是 发帖时间 Leave.time 和 回帖时间 Reply.time

如果 主贴 在 回帖表 有 回复的数据,则取 回复 的最后时间
如果 主贴 在 回帖表 没有 回复的数据,则取 发表 的时间

用取的时间作比较 倒序排序


也就是说,我发了个帖子,
【有人回复】,则用这个回复的时间去和其他帖子的发帖时间【其他帖子没有回复信息】或者回复时间【其他帖子有回复信息】做比较,来倒序排序

【没有人回复】,则用这个发帖时间去和其他帖子的发帖时间【其他帖子没有回复信息】或者回复时间【其他帖子有回复信息】做比较,来倒序排序


求各大神帮忙...

------解决方案--------------------
SQL code

select 
* from Leave  as  a left join (select tid,max([time]) as [time] from Reply group by tid) as b on a.ID=b.tid 
order by isnull(b.[time],a.[time]) desc