表tbl,存放bbs里的帖子
字段:
fld_id,帖子编号
fld_pid,父帖编号,如果是父帖则此字段值=0
fld_body,帖子内容
fld_createtime,发帖时间一个父帖可以有多个子帖,
确认父帖的方法是,fld_pid=0,
确认父帖和子帖关系的方法是:a记录的fld_pid = b记录的fld_id,则b是a的父帖.我现在想得到一个结果集,全部都是父帖,并且按照以下要求排序
它的最新子帖的发布时间降序排列
如果没有最新子帖,则父帖的发布时间作为最新子帖的发布时间.例如:
fld_id,fld_pid,fld_body,fld_createtime
1 0 1 2006-01-02
2 0 2 2006-01-01
3 1 3 2006-01-03
4 1 4 2006-01-08
5 2 5 2006-01-05
6 2 6 2006-01-06
7 0 7 2006-01-07则得到的结果集是:
fld_id,fld_body
1 1
7 7
2 2
其中,1的最新子帖是4(2006-01-08)
7没有最新子帖,则使用自己发布的时间作为最新子帖发布时间(2006-01-07)
2的最新子帖发布时间是6(2006-01-06)谢谢高人指点~~~
字段:
fld_id,帖子编号
fld_pid,父帖编号,如果是父帖则此字段值=0
fld_body,帖子内容
fld_createtime,发帖时间一个父帖可以有多个子帖,
确认父帖的方法是,fld_pid=0,
确认父帖和子帖关系的方法是:a记录的fld_pid = b记录的fld_id,则b是a的父帖.我现在想得到一个结果集,全部都是父帖,并且按照以下要求排序
它的最新子帖的发布时间降序排列
如果没有最新子帖,则父帖的发布时间作为最新子帖的发布时间.例如:
fld_id,fld_pid,fld_body,fld_createtime
1 0 1 2006-01-02
2 0 2 2006-01-01
3 1 3 2006-01-03
4 1 4 2006-01-08
5 2 5 2006-01-05
6 2 6 2006-01-06
7 0 7 2006-01-07则得到的结果集是:
fld_id,fld_body
1 1
7 7
2 2
其中,1的最新子帖是4(2006-01-08)
7没有最新子帖,则使用自己发布的时间作为最新子帖发布时间(2006-01-07)
2的最新子帖发布时间是6(2006-01-06)谢谢高人指点~~~
解决方案 »
- 我没用用oracle 写过存储过程!,想做一个,小的。希望高人指点,谢谢!
- VB+ODBC+ORACLE同一句sql,结果不同
- char类型的字段作为查询条件时,必须先去掉两边的空格才行吗
- select for update of column
- 非常小的问题,大侠们赐教啊
- 太奇怪了,隔一段时间就报错,然后数据库就连不上了,我给用户骂死了,请问各位老大帮忙啊!
- 请教:多行数据保存到文本文件批量插入到数据库中的表oracle的sql怎么实现?
- oracle9i是不是不能从ORACLE817版本的数据库中倒出数据
- 我在那里可以看到我建立的触发器?
- 谁帮我解决这个大菜问题,给分
- 如何用PL\SQL Developer还原Oracle数据库备份文件
- 奇怪的问题dblink报0RA-12154:TNS :无法处理服务名错误,但TNSNAMES.ORA文件没有配置错,用相同的用户名,密码登陆数据库都没有问题
t1.fld_id,
t1.fld_body,
max(decode(t2.fld_createtime, null, t1.fld_createtime, t2.fld_createtime)) createtime
from
tbl1 t1,
tbl1 t2
where
t1.fld_pid = 0
and t1.fld_id =t2.fld_pid (+)
group by
t1.fld_id,
t1.fld_body
order by createtime