现有三个表:版块表
create table catalog
(
catalogid Number(9),
names Varchar2(500)
)
主贴表
create table mainBbs2
(
bid Number(9),
catalogid Number(9),
titles Varchar2(500),
author Varchar2(50),
createDate Date
)
回帖表
create table reBbs
(
rbid Number(9),
bid Number(9),
titles Varchar2(500),
author Varchar2(50),
createDate Date
)
insert into catalog values(se1_contract.nextval,'web开发');
insert into catalog values(se1_contract.nextval,'JS开发');insert into mainBbs2 values (se1_contract.nextval,21,'JSP问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,21,'JSP问题','橙子',sysdate);insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into rebbs values(se1_contract.nextval,33,'回复JSP问题','橙子',sysdate);
insert into rebbs values(se1_contract.nextval,33,'回复JS问题','橙子',sysdate);问题:
1、查询出某版块下 回复数前10的帖子。
2、查询出某版块下 最新回复的前10个帖子。
要查询出结果的字段:
版块ID 版块名称,
catalogid
names
主贴:id 标题,创建时间,作者,
评论表:前十中 每个帖子的总回复数,最后回复时间
这样查:不行,很多不是分组字段
select c.catalogid,c.names,m.bid,m.titles,
m.author,m.createDate,count(r.bid) totalR,max(r.createDate) from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid order by totalR;这样查:还有很多需要的字段信息得不到
select r.bid,count(r.bid) totalR,max(r.createDate) from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid order by totalR;
望高手指点啊!全部解决,可以追加分!
create table catalog
(
catalogid Number(9),
names Varchar2(500)
)
主贴表
create table mainBbs2
(
bid Number(9),
catalogid Number(9),
titles Varchar2(500),
author Varchar2(50),
createDate Date
)
回帖表
create table reBbs
(
rbid Number(9),
bid Number(9),
titles Varchar2(500),
author Varchar2(50),
createDate Date
)
insert into catalog values(se1_contract.nextval,'web开发');
insert into catalog values(se1_contract.nextval,'JS开发');insert into mainBbs2 values (se1_contract.nextval,21,'JSP问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,21,'JSP问题','橙子',sysdate);insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into mainBbs2 values (se1_contract.nextval,22,'JS问题','橙子',sysdate);
insert into rebbs values(se1_contract.nextval,33,'回复JSP问题','橙子',sysdate);
insert into rebbs values(se1_contract.nextval,33,'回复JS问题','橙子',sysdate);问题:
1、查询出某版块下 回复数前10的帖子。
2、查询出某版块下 最新回复的前10个帖子。
要查询出结果的字段:
版块ID 版块名称,
catalogid
names
主贴:id 标题,创建时间,作者,
评论表:前十中 每个帖子的总回复数,最后回复时间
这样查:不行,很多不是分组字段
select c.catalogid,c.names,m.bid,m.titles,
m.author,m.createDate,count(r.bid) totalR,max(r.createDate) from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid order by totalR;这样查:还有很多需要的字段信息得不到
select r.bid,count(r.bid) totalR,max(r.createDate) from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid order by totalR;
望高手指点啊!全部解决,可以追加分!
解决方案 »
- ResultSet.next()没有数据返回true怎么回事
- struts2 点登陆按钮没有反应 (请高人帮忙看看什么原因)
- java B/S做个视频网站改如何做
- 求助啊,搞了两天了,EASY-UI+STRUTS一直没数据。。。。。。大牛们。。。
- java web开发新手,请问怎么确定当前页面的登录用户
- Fckeditor在线编辑器自动过滤word格式
- 求助tomcat5.5
- 工作中急需,struts高手请进,如何设置<html:radio>组的初始选中,急等
- url后面传中文时总出现乱码?
- 如何在JSP中直接显示excel表格,而不是提出字段?
- 请教个JQUERY.HTML()的小问题
- 求一本JavaEE的书
select * from mainBbs2,reBbs,catalog where mainBbs2.bid =reBbs.bid and mainBbs2.catalogid = catalog.catalogid
and mainBbs2.bid in{select bid from (
select bid,count(*) cc from reBbs group by bid where rowno<11 order by cc )--查出前十的帖子id
}以此类推 最新回复前十你可以下载本人写的工具 万能代码生成器 http://download.csdn.net/detail/lzq1205/4062483
select A.*,B.* from (select c.catalogid,c.names,m.bid,m.titles,
m.author,r.createDate from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid ) A,
(select top 10 r.bid,count(r.bid) totalR,max(r.createDate) as createDate from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid having max(r.createDate) order by totalR) B
where B.bid = A.bid and A.createDate = B.createDate;方法二:
select A.*,B.* from (select c.catalogid,c.names,m.bid,m.titles,
m.author,r.createDate from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid ) A right join
(select top 10 r.bid,count(r.bid) totalR,max(r.createDate) as createDate from rebbs r,mainBbs2 m,catalog c where r.bid=m.bid and m.catalogid=c.catalogid group by r.bid having max(r.createDate) order by totalR) B
on B.bid = A.bid and A.createDate = B.createDate;
Oracle中这样的语法好像不支持,
select A.*,B.* from (
(select m.bid,c.catalogid,c.names,m.titles,
m.author,m.createDate from mainBbs2 m,reBbs r,catalog c where m.bid =r.bid and m.catalogid = c.catalogid
and m.bid in
(
select t.bid from (select bid,count(r.bid) cc from reBbs r group by bid order by cc desc) T where rownum<=5
)
)A,(select r.bid,count(r.bid) cc,max(r.createdate) from mainBbs2 m,reBbs r,catalog c
where m.bid =r.bid and m.catalogid = c.catalogid group by r.bid) B
)where a.bid=b.bid
还请楼主继续帮助!