主题 作 者 回复/查看 最后回复 回复时间 发表时间这个是通常一些论坛上显示的列
但是这些数据不能从一条查询语句查询出来(或许有但我写不出来)。
所以我就想了2种方式来显示上面的数据
1. 针对每一个列做一次查询
然后将每一次查询返回的集合。再放到一个总体的map里面。这样我也可以显示出数据
这样在页面上取出map里面的数据也就能显示出来了。
2. 写一个储存过程能够一次查询出这样的一条数据。
但是需要做循环来调用这个存储过程。然后将数据放到list里面前台使用现在就是不知道要选用哪种比较方便
第一种吧。感觉查询的次数太多,每个列基本上都要做一次查询。
第二种呢。又循环调用存储过程,这样会不会效率太低了啊?
希望各位给点意见呢!谢谢!
下面是存储过程drop proc proc_showBoard
go
create procedure proc_showBoard
@boardId int , --版块名称--
@topicCount int output, --发帖数--
@replyCount int output, --回复数--
@boardName nvarchar(50) output, --版块名称--
@pubTime datetime output, --最后回复时间--
@pubPer nvarchar(50) output --最后回复人--
as
/*查询主贴总数*/
SELECT @topicCount = count(*) from BBSTopic INNER JOIN BBSReply ON BBSTopic.topicId = BBSReply.topicId CROSS JOIN BBSChildBoard where BBSChildBoard.cbId = @boardId/*查询回帖总数 和子版块名字*/
select @replyCount =count(*),@boardName = cbname from bbstopic inner join bbschildboard on bbstopic.secchildid = bbschildboard.cbid where BBSChildBoard.cbId = @boardId group by bbschildboard.cbname/*查询最后回复人和回复时间*/
select top 1 @pubPer = bbsuserdate.realname,@pubTime=bbsreply.publishtime from bbsreply inner join bbstopic on bbsreply.topicid =bbstopic.topicid cross join bbsuserdate where bbstopic.secchildid=1 order by bbsreply.replyid
go
但是这些数据不能从一条查询语句查询出来(或许有但我写不出来)。
所以我就想了2种方式来显示上面的数据
1. 针对每一个列做一次查询
然后将每一次查询返回的集合。再放到一个总体的map里面。这样我也可以显示出数据
这样在页面上取出map里面的数据也就能显示出来了。
2. 写一个储存过程能够一次查询出这样的一条数据。
但是需要做循环来调用这个存储过程。然后将数据放到list里面前台使用现在就是不知道要选用哪种比较方便
第一种吧。感觉查询的次数太多,每个列基本上都要做一次查询。
第二种呢。又循环调用存储过程,这样会不会效率太低了啊?
希望各位给点意见呢!谢谢!
下面是存储过程drop proc proc_showBoard
go
create procedure proc_showBoard
@boardId int , --版块名称--
@topicCount int output, --发帖数--
@replyCount int output, --回复数--
@boardName nvarchar(50) output, --版块名称--
@pubTime datetime output, --最后回复时间--
@pubPer nvarchar(50) output --最后回复人--
as
/*查询主贴总数*/
SELECT @topicCount = count(*) from BBSTopic INNER JOIN BBSReply ON BBSTopic.topicId = BBSReply.topicId CROSS JOIN BBSChildBoard where BBSChildBoard.cbId = @boardId/*查询回帖总数 和子版块名字*/
select @replyCount =count(*),@boardName = cbname from bbstopic inner join bbschildboard on bbstopic.secchildid = bbschildboard.cbid where BBSChildBoard.cbId = @boardId group by bbschildboard.cbname/*查询最后回复人和回复时间*/
select top 1 @pubPer = bbsuserdate.realname,@pubTime=bbsreply.publishtime from bbsreply inner join bbstopic on bbsreply.topicid =bbstopic.topicid cross join bbsuserdate where bbstopic.secchildid=1 order by bbsreply.replyid
go
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货