关于留言板排序问题(求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
------解决方案--------------------