我有两个具有父子关系的表:
PARENT 表以 id
作为索引
id | name
----------------
1 | Bob
2 | Mike
3 | Joe
CHILDREN 表以 id
为索引
id | parent | name
-------------------------
1 | 1 | Ronald
2 | 2 | Sammy
3 | 3 | Jenny
4 | 1 | Tara
5 | 3 | Jack
在我的网站上,我想显示所有 parent 的列表及其 child 的数量,如下所示:
id | name | Children Count
-------------------------------
1 | Bob | 2
2 | Mike | 1
3 | Joe | 2
执行此操作的有效方法是什么?请注意,这里我代表了我的数据结构的一个类似的简化版本,在我的实际情况下,我的 PARENT
表中有大约 10000 条记录,每个 parent
有大约 10 - 200
child
。
如果您建议将 count
列添加到 PARENT
表,您是否知道有什么方法可以使 count
自动当我在 CHILDREN
表中进行更改时由 MYSQL
更新?
最佳答案
SELECT p.id,
p.name,
COUNT(c.id) AS children_count
FROM parent p
LEFT JOIN children c ON p.id = c.parent
GROUP BY p.id
关于mysql - 统计 child 数量的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093431/