我有两个具有父子关系的表:

id为索引的PARENT表

    id  | name
----------------
    1   | Bob
    2   | Mike
    3   | Joe


id为索引的CHILDREN表

   id   | parent | name
-------------------------
    1   | 1      | Ronald
    2   | 2      | Sammy
    3   | 3      | Jenny
    4   | 1      | Tara
    5   | 3      | Jack


我想在我的网站上显示所有父母及其子女的清单,如下所示:

    id  | name | Children Count
-------------------------------
    1   | Bob  |      2
    2   | Mike |      1
    3   | Joe  |      2


有效的方法是什么?请注意,这里我代表了数据结构的简化版本,在我的实际情况下,我的PARENT表中大约有10000条记录,每个parent都有大约10 - 200 children

如果您建议在count表中添加PARENT列,您是否知道我在count表中进行更改时,MYSQL将由CHILDREN自动更新的任何方式?

最佳答案

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/

10-12 14:38
查看更多