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
的of4
。在通过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
的of4
。在通过parent\u id
进行聚合后,您可以通过简单的连接获得父名称。