如何用group by计算mysql数据

时间:2014-05-01 17:10:18

标签: php mysql count group-by

我有一个php网页,我在使用mysql查询中的group by计数数据时遇到了问题

提交任何问题时,ID会自动添加并且idqu = 0 如果问题回复,那么idqu等于回答问题的id

我的表和数据

id idqu question answer    user    date

1   0   quest1             test    28042014

2   0   quest2             scott   29042014

3   2   reply1             andy    01052014

4   0   quest3             test    01052014

5   4   reply2             scot    01052014

我的问题是如何计算问题的回复?

quest1 (0)

quest2 (1)

quest3 (1)

5 个答案:

答案 0 :(得分:1)

此查询完成此任务。我给表格的名字是" tbl"

Select q.id, count(a.id) as answers

From tbl q

Left join tbl a on a.idqu=q.id

Where q.idqu=0

Group by q.id

答案 1 :(得分:1)

试试这个

    Select t1.question, count(t2.id) as counts
    From table1 t1
    Left join table1 t2 on t2.idqu=t1.id
    Where t1.idqu=0
    Group by t1.id

DEMO

答案 2 :(得分:0)

如果我理解正确,请尝试:

SELECT question, SUM(CASE WHEN idqu > 0 THEN 1 ELSE 0 END)
FROM tablename
GROUP BY question

答案 3 :(得分:0)

select idqu, count(idqu) as reply_count
from   table_name
where  idqu <> 0
group by idqu

答案 4 :(得分:0)

这是针对每个回复,有点像php。我认为你不需要小组。

$query="SELECT * From YourTable WHERE idqu>0";
$res=mysql_query($query);
mysql_num_rows($res);

如果您想在一个问题上选择回复,请在查询中添加AND idqu =(yourInt)。

希望我理解并正确回复!