读书人

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

发布时间: 2012-04-13 13:50:24 作者: rapoo

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

读书人网 >SQL Server

热点推荐