关于论坛类数据库查询

zmx198768 2009-03-27 04:21:03
数据库中的表如下,参考了discuz!的数据库设计。

create table post
(
id int auto_increment primary key, \\帖子的ID
tid int not null, \\父帖的ID
subject varchar(50) default '', \\帖子的标题
dateline timestamp default current_timestamp, \\帖子发布时间,默认当前时间
message text not null, \\帖子内容
author varchar(20) not null \\帖子作者
);


我现在想查询最新发表或者有回复的主题帖,但以下情况会出现一种情况,就是当有回复帖子的时候,查询不到父帖的主题,该如何修改以下查询语句才能达到我要的效果?
select *,count(*) as total from (select * from post order by dateline desc) as posts group by tid order by dateline desc;
...全文
127 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbb332 2009-03-28
  • 打赏
  • 举报
回复
学习
fcuandy 2009-03-28
  • 打赏
  • 举报
回复
贴子没有父ID时,它的TID值是什么,你怎么定义的,是NULL还是它的ID本身?
zmx198768 2009-03-28
  • 打赏
  • 举报
回复
有没有人帮忙搞定下
帖子加分了
ai_li7758521 2009-03-28
  • 打赏
  • 举报
回复
学习中
sdhdy 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sdhdy 的回复:]
SQL codeselect * ,(select count(1) from post where tid=a.id and tid<>id ) 回复数 from post a where id=tid order by dateline desc
[/Quote]
这个是光算回复帖子数的。
sdhdy 2009-03-28
  • 打赏
  • 举报
回复
--如果你的主题帖也算回复数的话。
--看你要哪个?
select * ,(select count(1) from post where tid=a.id) 回复数 from post a where id=tid order by dateline desc
dawugui 2009-03-28
  • 打赏
  • 举报
回复

请给出表结构,测试数据,相关算法和需要的结果.谢谢!

sdhdy 2009-03-28
  • 打赏
  • 举报
回复
select * ,(select count(1) from post where tid=a.id and tid<>id ) 回复数 from post a where id=tid order by dateline desc
zmx198768 2009-03-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fcuandy 的回复:]
贴子没有父ID时,它的TID值是什么,你怎么定义的,是NULL还是它的ID本身?
[/Quote]若是主题帖,则tid=id
若是回复贴,则tid!=id
王向飞 2009-03-28
  • 打赏
  • 举报
回复
帮顶
yygyogfny 2009-03-27
  • 打赏
  • 举报
回复
看老D了.
claro 2009-03-27
  • 打赏
  • 举报
回复
帮顶
you_tube 2009-03-27
  • 打赏
  • 举报
回复
with Args as
(
select * from post
union all
select * from post where post.id = Args.id
)
select * ,row_number over(order by id) from Args ;
zmx198768 2009-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
回复帖子的情况是哪个字段?
[/Quote]
若是主题帖,则tid=id
若是回复贴,则tid!=id
Teng_s2000 2009-03-27
  • 打赏
  • 举报
回复
看着老D解决吧
sdhdy 2009-03-27
  • 打赏
  • 举报
回复
看不出回复帖子的字段。
htl258_Tony 2009-03-27
  • 打赏
  • 举报
回复
老D在关注着,我帮顶一把.
jlj84237485 2009-03-27
  • 打赏
  • 举报
回复
帮顶一下
dawugui 2009-03-27
  • 打赏
  • 举报
回复
回复帖子的情况是哪个字段?

22,223

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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