表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)谢谢高人指点~~~
解决方案 »
- 请问这个SQL为什么会错?
- 请问一下测试这个存储过程sql语句怎么写啊?
- oracle下这样的查询怎么弄!
- 这个动态语句那个地方错了?急急急
- weak entity没有weak key问题
- 本贴已贴过3遍都没高手帮忙,难道太难了吗?急啊,拜求高手指点!!!!!
- Oracle 在Linux 下的安装问题
- 请教ORACLE9I的默认帐户和密码
- 请问各位大虾:我的机器为什么安装不上Oracle?
- 请教大家一个问题,有一个后台入库程序每天都要处理用户上传上来的数据
- 如何用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