首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

送分来了!求查询两个表,该怎么处理

2012-01-12 
送分来了!求查询两个表表Topic:主题表idTopicName1主题12主题23主题35主题57主题7表Comment:主题评论表idt

送分来了!求查询两个表
表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

热点排行