Php,MySql每个父类的最新条目,带计数器

Php,MySql每个父类的最新条目,带计数器,php,mysql,count,Php,Mysql,Count,我尝试运行一个查询,该查询将根据父子关系列出结果,并计算每个父类别的记录数。 这是我的“收件箱”表格: id name parent_id created ==================================================== 1 First Message 0 2016-02-05 2 sub1 (1) message 1

我尝试运行一个查询,该查询将根据父子关系列出结果,并计算每个父类别的记录数。 这是我的“收件箱”表格:

id      name                parent_id       created
====================================================
1       First Message       0               2016-02-05
2       sub1 (1) message    1               2016-02-15
3       sub2 (2) message    1               2016-02-18
4       Second Message      0               2016-03-01
5       sub3 (1) message    4               2016-03-18
6       sub4 (2) message    4               2016-03-20
7       sub5 (3) message    4               2016-03-21
所需的结果是显示每个父类别(parent_id=0),其中包含来自子类别的单个最新条目,并包含每个父类别的计数器。 比如:

total (3) Second Message
   -- sub4 (2) message

total (2) First Message
   -- sub5 (3) message 

显示如何获取每个组中的最新行。如果将
COUNT(*)
添加到具有
GROUP BY
的子查询中,您也可以获取计数。您的预期结果不适用于示例数据,因为您在最后两行具有相同的
id
,并且它们都具有
4
父id
,所以他们会在同一个分组中。@Sean我已经修复了他们的ID输入错误。只是吹毛求疵,但是
父ID
呢?根据您的示例数据,我看到最后一个条目应该是
sub2(2)message
(对于
First message
)和
sub5(3)message
(对于
Second message
)。因此,我不明白您如何拥有
sub5(3)message
sub4(2)message
,因为它们都有
parent\u id
of
4
。在通过
parent\u id
进行聚合后,您可以通过简单的连接获得父名称。显示如何获取每个组中的最新行。如果将
COUNT(*)
添加到具有
GROUP BY
的子查询中,您也可以获取计数。您的预期结果不适用于示例数据,因为您在最后两行具有相同的
id
,并且它们都具有
4
父id
,所以他们会在同一个分组中。@Sean我已经修复了他们的ID输入错误。只是吹毛求疵,但是
父ID
呢?根据您的示例数据,我看到最后一个条目应该是
sub2(2)message
(对于
First message
)和
sub5(3)message
(对于
Second message
)。因此,我不明白您如何拥有
sub5(3)message
sub4(2)message
,因为它们都有
parent\u id
of
4
。在通过
parent\u id
进行聚合后,您可以通过简单的连接获得父名称。