首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于留言板排序有关问题(求SQL语句)

2012-04-13 
关于留言板排序问题(求SQL语句)最近做一个留言板的东西。留言信息放在留言表MessageInfo,回复信息放在回复

关于留言板排序问题(求SQL语句)
最近做一个留言板的东西。留言信息放在留言表MessageInfo,回复信息放在回复表MessageReply
在页面留言列表需要实现类似于论坛留言列表的排序,即新增留言(无回复)以留言时间排序,有回复的留言以回复时间排序,新增留言(无回复)排在有回复留言的前面。
我现在只知道将有回复的留言以回复时间排序,但不知道怎么写SQL语句将新增的无回复留言排到有回复的留言前面。
以回复时间排序的SQL语句:
SELECT A.MessageID,MessageTitle,MessageTime,ReplyCount,ReplyTime FROM MessageInfo A LEFT JOIN
 (SELECT B.*,C.ReplyCount FROM MessageReply B,(SELECT MessageID,COUNT(ReplyID) AS ReplyCount,MAX(ReplyTime)
 AS ReplyTime FROM MessageReply GROUP BY MessageID) C
 WHERE B.MessageID=C.MessageID AND B.ReplyTime=C.ReplyTime) D
 ON A.MessageID=D.MessageID ORDER BY ReplyTime DESC

[解决办法]

SQL code
order by (case when d.messageID is null then 0 else 1 end),replytime desc
[解决办法]
探讨
最近做一个留言板的东西。留言信息放在留言表MessageInfo,回复信息放在回复表MessageReply
在页面留言列表需要实现类似于论坛留言列表的排序,即新增留言(无回复)以留言时间排序,有回复的留言以回复时间排序,新增留言(无回复)排在有回复留言的前面。
我现在只知道将有回复的留言以回复时间排序,但不知道怎么写SQL语句将新增的无回复留言排到有回复的留言前面。
以回复时间排序的SQL……

热点排行