送分来了!求查询两个表
表Topic:主题表
id TopicName
1 主题1
2 主题2
3 主题3
5 主题5
7 主题7
表Comment:主题评论表
id topicId comment addtime
1 1 就是对于主题1的评论 2007-3-2 14:01:29
2 1 再次对于主题1的评论 2007-3-2 15:01:29
3 2 就是对于主题2的评论 2007-3-3 15:01:29
4 5 就是对于主题5的评论 2007-3-3 15:02:29
5 5 再次对于主题5的评论 2007-3-4 15:18:29
6 3 对于主题3的评论 2007-3-1 15:02:29
7 7 对于主题7的评论 2007-3-6 15:02:29
8 2 再次主题2的评论 2007-3-5 15:02:29
9 2 再次主题2的评论 2007-3-4 15:10:00
主题表topIc的Id与Comment的topicId相关联 --topic.id=comment.topicId
最后得到的结果是根据Comment表的addtime降序实现表Topic的排序
排序Comment后是
id topicId comment addtime
7 7 对于主题7的评论 2007-3-6 15:02:29
8 2 再次主题2的评论 2007-3-5 15:02:29
5 5 再次对于主题5的评论 2007-3-4 15:18:29
9 2 再次主题2的评论 2007-3-4 15:10:00
4 5 就是对于主题5的评论 2007-3-3 15:02:29
3 2 就是对于主题2的评论 2007-3-3 15:01:29
2 1 再次对于主题1的评论 2007-3-2 15:01:29
1 1 就是对于主题1的评论 2007-3-2 14:01:29
6 3 对于主题3的评论 2007-3-1 15:02:29
那Topic的排序为
id TopicName
7 主题7
2 主题2
5 主题5
1 主题1
3 主题3
效果就是一个论坛中,对于一个主题发表了评论,那个主题马上就会置顶,根据发表评论的时间来决定主题顺序的先后。
请大家帮一下忙。谢谢了!
[解决办法]
create table Topic(id int , TopicName varchar(10))
insert Topic
select 1 , '主题1 '
union all select 2 , '主题2 '
union all select 3 , '主题3 '
union all select 5 , '主题5 '
union all select 7 , '主题7 '
create table Comment(id int , topicId varchar(10),comment varchar(100),addtime datetime)
insert Comment
select 1 ,1, '就是对于主题1的评论 ', '2007-3-2 14:01:29 '
union all select 2 ,1, '再次对于主题1的评论 ', '2007-3-2 15:01:29 '
union all select 3 ,2, '就是对于主题2的评论 ', '2007-3-3 15:01:29 '
union all select 4 ,5, '就是对于主题5的评论 ', '2007-3-3 15:02:29 '
union all select 5 ,5, '再次对于主题5的评论 ', '2007-3-4 15:18:29 '
union all select 6 ,3, '对于主题3的评论 ', '2007-3-1 15:02:29 '
union all select 7 ,7, '对于主题7的评论 ', '2007-3-6 15:02:29 '
union all select 8 ,2, '再次主题2的评论 ', '2007-3-5 15:02:29 '
union all select 9 ,2, '再次主题2的评论 ', '2007-3-4 15:10:00 '
select b.topicId , a.TopicName from Topic a inner join (select topicId , addtime=max(addtime) from Comment group by topicId) b on a.id=b.topicId
order by b.addtime desc