论坛编程的问题.现有两张表bbs_topic (帖子主体表) bbs_reply (对应主题的回复表)其中bbs_topic里的数据分为两类..置顶贴和一般贴.通过一个字段t_istop来区别————————————————————————————————现在我想实现的就是一般论坛的帖子更新后排序重置的问题.即.一个帖子,有人回复后,它对应的bbs_topic的纪录就变到排序的第一列..主要是通过bbs_reply里的主键r_id来判断(由于是自动编号,所以一个topic对应的最大id就应该是最新回复..)还有就是我最最想不通的,如何把置顶贴和一般贴区别开来排序,即,置顶贴回复只会影响到同为置顶贴的帖子顺序,一般贴的最新回复,也只会影响到一般贴的顺序..
-----------------------------------------------------------------
不知道大家听明白了没..语言表达能力不佳..付上表结构bbs_topic:
t_id t_istop
(主键,自动编号) (是否为置顶贴)
bbs_reply
r_id r_topicid,
(主键,自动编号) (对应的bbs_topic表的id)
在线等..谢谢各位高手
-----------------------------------------------------------------
不知道大家听明白了没..语言表达能力不佳..付上表结构bbs_topic:
t_id t_istop
(主键,自动编号) (是否为置顶贴)
bbs_reply
r_id r_topicid,
(主键,自动编号) (对应的bbs_topic表的id)
在线等..谢谢各位高手
解决方案 »
- sqldatareader使用不当会使网站出现异常
- 请教下关于从asp到asp.net的过渡问题。
- asp.net(vb)刷新页面会自动执行按钮click事件
- 在IIS默认网站下 可以用代码设置asp.net的虚拟路径吗
- *****Datalist二层嵌套事件问题?
- 遇到注册程序集的问题,求救,急啊!
- 局部变量中怎么引用类变量
- 救命问题:要交毕业设计了,还有一个重要问题没解决,高手过来帮帮忙,help!~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- DataSet在页面提交以后,是否还可以再用?
- 请教,各位朋友,如何学习vs.net开发环境呢?
- aspnet(C#)中如何实现同时上传几个文件
- 当前页面是utf-8编码是,保存进数据库时是否需要对数据进行编码?
排序的时候先按是否置顶排,然后按最后回复时间排.
select top 3 * from bbs_topic where t_istop = 1取得20最近更新的一般贴:
select top 20 y.*
from
(
select top 1000 r_topicId, max(rId) as r_id --可根据网站的访问量调整这里的设置进行优化 from bbs_reply a
group by r_topicId
) x
left join bbs_topic y on x.t_id = y.r_topicId
where y.t_istop = 0
order by x.r_id
select top 20 y.*
from
(
select r_topicid, max(r_id) as r_id
from bbs_reply a
group by r_topicId
) x
left join bbs_topic y on x.r_topicid = y.t_id
where y.t_istop = 0
order by x.r_id
==>
是的.
先按是否置顶还排序前面的置顶的,后面是非...在置顶或非置顶的帖子中,即t_istop 相同的情况下再按LastUpdateTime 的逆排序结果就会如下.t_istop LastUpdateTime
1 2点
1 1点
1 0 点0 2..
0 1
0 0