有2个MySQL表看起来像这样:

表父母

+-------+-----------+-----------+
| id    |  name     | birthdate |
+-------+-----------+-----------+
|     1 | Mary      | 1974-05-02|
|     2 | John      | 1970-06-03|
|     4 | James     | 1984-07-04|


桌上的孩子

+-------+-----------+-----------+-----------+-----------+
| id    |  parent   | name      |birthdate  |  gender   |
+-------+-----------+-----------+-----------+-----------+
|     1 | 1         | Sara      |2013-10-22 | female    |
|     2 | 1         | Jack      |2014-05-02 | male      |
|     3 | 1         | Jill      |2015-06-07 | female    |
|     4 | 2         | Sam       |2015-06-07 | male      |
|     5 | 2         | Fred      |2015-06-07 | male      |
|     6 | 3         | Julie     |2015-06-07 | female    |
|     7 | 4         | Megan     |2015-06-07 | female    |


我如何获取有3个孩子的父母(数量)?

+---------+
|TOTAL    |
+---------+
| 1       |

最佳答案

使用COUNTHAVING

SELECT p.id
FROM parents p
INNER JOIN children c
    ON c.parent = p.id
GROUP BY p.id
HAVING COUNT(c.id) = 3




要获取具有3个parentchildren个数:

SELECT COUNT(*)
FROM (
    SELECT p.id
    FROM parents p
    INNER JOIN children c
        ON c.parent = p.id
    GROUP BY p.id
    HAVING COUNT(c.id) = 3
) t

10-01 16:56
查看更多