请教一个统计沙发数的MySql语句

topic
=================
id
title

comments
================
topic_id <= 关联topic 的id
user_id <= 关联用户

user
================
id
name 


想得到对所有topic发表评伦(comments)的、第一个用户进行统计(沙发),并做一个排序。

比如
========================
姓名 沙发数 topic_id
张三 12 1,3,5,12,33...
李四 5 2,4,6,8,10
...


虚心求教!

作者: taito   发布时间: 2011-05-16

贴建表及插入记录的SQL,及要求结果出来看看

select a.name,count(*),group_concat(b.topic_id) from user a inner join comments b on a.user_id=b.user_id
inner join topic c on c.id=b.topic_id

作者: wwwwb   发布时间: 2011-05-16

select a.id,a.name,count(*),group_concat(b.topic_id) from user a inner join comments b on a.user_id=b.user_id
inner join topic c on c.id=b.topic_id
group by a.id,a.name

作者: wwwwb   发布时间: 2011-05-16

假设rowdate为comments表的时间列
SQL code
select T.user_id '姓名',count(*) '沙发数',group_concat(T.topic_id) 'topic_id'
from (
select *
from comments A
where not exists (select 1 from comments where A.rowdate<rowdate and A.topic_id=topic_id)
)T
group by T.user_id

作者: rucypli   发布时间: 2011-05-16

1.取comments表相同topic_id值的第1个user_id值;
2.再根据user_id值分组,求和,关联用户名表;

作者: gungod   发布时间: 2011-05-16