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

关于留言板排序问题(求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……