这个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();
%>
...全文
56 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧