sql语句 写不来啊 高手帮忙 急急急!!!!!!!!!!!

nitaiyoucala 2010-09-28 10:37:23
sql语句怎么写?要查5个表的数据

要查的字段 mdsets_bbs_plate表中的plate_name
mdsets_bbs_sub_plate表中的sub_plate_name,sub_plate_description,post_qty,reply_qty
mdsets_bbs_content表中的topic,updater,update_date,
mdsets_bbs_plate_boss表和mds_bbs_users表关联取出版主名字 mdsets_bbs_users表中的group_id=2的就是版主
取出最新的一条帖子

用户表

create table mdsets_bbs_users
(
user_id varchar2(8) not null, --pk
user_name varchar2(45) ,--pk
pass_word varchar2(20) ,
email varchar2(30) ,
name varchar2(30) ,
phone_no varchar2(20) ,
person_info varchar2(900) ,
sex varchar2(1) default 'O' , --F╧ M O:玂盞
birth_day date null,
web_site varchar2(50) ,
QQ varchar2(20) ,
MSN varchar2(50) ,
group_id varchar2(1) default 1 , --default:1炊硄ノめ23恨瞶
last_login_date date default sysdate ,--Ω祅嘲丁
last_password_date date default sysdate ,--Ωэ盞絏丁
post_qty number default 0 ,--祇┇计
post_pretty_qty number default 0 ,
score number default 0 ,--緔 mdsets_bbs_score_rule
psw varchar2(32) ,--盞盞絏
user_photo varchar2(20) ,
creator varchar2(20) ,--default user_name not null,--承
creation_date date default sysdate ,
updater varchar2(20) not null,--default user_name not null,--э
update_date date default sysdate not null, --эら戳
post_ip varchar2(30) not null, --爹ip
constraint mdsets_bbs_users_pk primary key(user_id,user_name) --羛龄粂猭
)


主版块表

create table mdsets_bbs_plate
(
plate_group number(1) default 1 , --plate竤舱 纐粄1
plate_id number not null,
plate_name varchar2(90),
enabled varchar2(1) , --Y OR N
creator varchar2(20),
creation_date date ,
updater varchar2(20),
update_date date ,
constraint mdsets_bbs_plate_pk primary key(plate_id)
)



子版块表

create table mdsets_bbs_sub_plate
(
plate_id number,
sub_plate_id number not null,
sub_plate_name varchar2(90),
sub_plate_description varchar2(240),
--todat_qty number default 0 not null,
post_qty number default 0 ,
reply_qty number default 0 ,
last_content_id number,
enabled varchar2(1) ,-- Y OR N
creator varchar2(20) ,
creation_date date,
updater varchar2(20) ,
update_date date ,
constraint mdsets_bbs_sub_plate_pk primary key(sub_plate_id)
-- constraint mdsets_bbs_sub_plate_fk foreign key(plate_id) references mdsets_bbs_plate(plate_id)
)



版主表

create table mdsets_bbs_plate_boss
(
sub_plate_id number ,
user_id varchar2(8),
creator varchar2(20) ,
creation_date date,
updater varchar2(20) ,
update_date date
--constraint mdsets_bbs_plate_boss_fk primary key(user_id)
)



帖子表

create table mdsets_bbs_content
(
sub_plate_id number not null,
content_id number,
sequences number(1) default 2, --纔1:top,2:common
mood varchar2(10),
topic varchar2(240) , --程80簙
bbs_category varchar2(90) ,
bbs_type varchar2(90),
content clob ,
attachment varchar2(90) null,
browse_qty number default 0 ,
reply_qty number default 0 ,
up_qty number default 0 ,
down_qty number default 0 ,
last_reply_id number,
enabled varchar2(1), --y or n ,
creator varchar2(20),
creation_date date ,
updater varchar2(20),
update_date date ,
post_ip varchar2(30) ,
top_date date, --竚郴ら
top_date_qty date ,----纐粄竚郴ら戳程竚郴计10
is_pretty varchar2(1) default 'N' ,
constraint mdsets_bbs_content_pk primary key(sub_plate_id,content_id)
)


...全文
138 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
nitaiyoucala 2010-09-29
[Quote=引用 10 楼 humanist 的回复:]
楼主的需求是什么?
貌似要找每个子版块的最新一条帖子?

你先把你的需求描述清楚了,别人才知道给你写什么sql
[/Quote]


是的啊 谢谢帮忙
回复
酸饼 2010-09-29
楼主的需求是什么?
貌似要找每个子版块的最新一条帖子?

你先把你的需求描述清楚了,别人才知道给你写什么sql
回复
gelyon 2010-09-29
不是分多分少的问题,而是没理解楼主意思,你把你需求简单化一点,然后给点测试数据,以及你要的结果出来,这样我们才好看清楚关系啊,你一大堆全是create语句,没说清楚表之间的关联关系,咋去跟你分析啊!
回复
nitaiyoucala 2010-09-29
我穷啊 先写了以后再加 谢谢
回复
Cike121272604 2010-09-29
这么多代码呀,20分似乎有点少呀,楼主。
回复
nitaiyoucala 2010-09-29
有高手在吗 在线等啊
回复
nitaiyoucala 2010-09-29
都不行啊
回复
lxxlql 2010-09-29
需求说清楚点
回复
lxxlql 2010-09-29
强烈要求加分!!!
回复
Diza1986 2010-09-29
难易程度和连接多少表、取多少项目没关系的
理解你需求的意思并不是很复杂
先写框架再扩充,搞清楚表的关系,应该没问题的
回复
Mr傅 2010-09-29
头晕,不过还是说一下 根据时间倒序,rownum=1 取第一条记录
回复
Dream_1986 2010-09-29
需求没看明白啊。。
回复
dut703 2010-09-28
select * from (
select
a.plate_name ,
b.sub_plate_name,
b.sub_plate_description,
b.post_qty,
b.reply_qty,
c.topic,
c.updater,
c.update_date,
d.* ,
e.版主字段名字,
row_number() over (partition by c.sub_plate_id,c.content_id order by creation_date desc) r_num
from mdsets_bbs_plate a
left join mdsets_bbs_sub_plate b
on a.plate_id = b.plate_id
inner join mdsets_bbs_content c
on b.sub_plate_id = c.sub_plate_id
inner join mdsets_bbs_plate_boss d
on c.sub_plate_id=d.sub_plate_id
inner join mdsets_bbs_users e
on d.user_id = e.user_id
where e.group_id=2
) tmp where tmp.r_num = 1
;
这样吧,没有调试,
回复
tashiwoweiyi 2010-09-28
不好意思,我没有调试直接在这写的,大概就这意思

select
a.plate_name ,
b.sub_plate_name,
b.sub_plate_description,
b.post_qty,
b.reply_qty,
c.topic,
c.updater,
c.update_date,
d.* ,
e.版主字段名字
from
mdsets_bbs_plate a
left join
mdsets_bbs_sub_plate b on a.plate_id = b.plate_id
inner join
mdsets_bbs_content c on b.sub_plate_id = c.sub_plate_id
inner join
mdsets_bbs_plate_boss d on c.sub_plate_id=d.sub_plate_id
inner join mdsets_bbs_users e on d.user_id = e.user_id
where e.group_id=2
回复
gelyon 2010-09-28
你表之间连接后,根据时间字段降序排列,取第一个就是最新的了啊?
回复
gelyon 2010-09-28
我头昏
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2010-09-28 10:37
社区公告
暂无公告