这个sql嵌套查询怎么实现?

vickler 2003-03-28 03:56:49
A表 id,username,log_content,......
B表 id,match_id,opinion
其中A表存储是日志信息,id是自动增加的
B表存储的日志的评论信息,可能针对每个日志有很多的评论

现在要实现一个把某人最新的10条日志信息显示出来,并显示B表中针对某个日志有多少条纪录。

定义两个stmt对象,两个Rst,正确打开了数据库
rst=stmta.exeQuery(sqlstring);
while rsta.next(){
...
rstb = stmtb.exeQuery(..count()*.....where match_id = 'rsta.getInt("id")');

..循环输出
}
但是出现[Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt错误提示,如果只用一个stmt对象,出现ResultSet is closed提示,请问如何解决?


代码如下:
<%
java.sql.Statement Stmtmark;
Stmtmark = Con.createStatement();
java.sql.ResultSet Rstmark;
String username = session.getAttribute("username").toString();
String sqlsearch = "select top 10 log_date,log_filtime,id from log_info where username = '"+username+"' order by id desc";
Rst = Stmt.executeQuery(sqlsearch);
String tempstr_1;
String tempstr_2;
int tempid;
int nummark;
String sqlmarksearch;
while (Rst.next())
{
tempstr_1 = Rst.getString("log_date");
tempstr_2 = Rst.getString("log_filtime");
tempid = Rst.getInt("id");
sqlmarksearch = "select count(*) from opinion where match_id ="+tempid;
Rstmark = Stmt.executeQuery(sqlmarksearch);
Rstmark.next();
nummark = Rstmark.getInt(1);
Rstmark.close();
%>
...............HTML...............
<%}
Rst.close();
Stmt.close();
//Stmtmark.close();
Con.close();
%>
...全文
18 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
chinaitfan 2003-04-05
注意及时关闭Stmt对象。
回复
vickler 2003-03-30
不用sql,能不能在程序里面的循环中用Rst,Stmt实现?
回复
bsd 2003-03-28
select top 10 * from tableA as a where username='someone'
inner join (select count(*) from tableB group by match_id) as c
on a.id = c.match_id
order by a.id desc
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-03-28 03:56
社区公告
暂无公告