在MySQL查询中添加列计数

时间:2014-10-30 04:19:07

标签: php mysql

我正在尝试实现一个奇怪的查询。我有一张这样的桌子:

表人

-----------------------
| id | name | family |
+----+------+--------+
| 1  |  Bob |  Smith |
+----+------+--------+
| 2  |  Joe | Smith  |
----------------------

我想像这样返回一个关联数组

id : 1
name : bob
family : smith
familySize : 2

这样的事情

"SELECT id, name, family, familySize FROM People"

如何在那里获得familySize?请记住,我的查询可能有许多家庭,我希望他们全部返回。

谢谢。

4 个答案:

答案 0 :(得分:3)

以上2个答案不适用于多个家庭。

您可以这样做:

SELECT id, name, family, familySize FROM People p1
JOIN (SELECT COUNT(*) as familySize, family FROM People GROUP BY family) p2
USING(family)

答案 1 :(得分:1)

你可以这样做

SELECT id,name,family,count(id)as familySize FROM People

答案 2 :(得分:1)

     "SELECT id, name, family, count(family) as familySize FROM People group by   
      family"

答案 3 :(得分:1)

我想在这里提一下,如果两个或三个家庭有相同的姓氏"史密斯"它不会给你想要的结果。

我建议您在表中插入数据时指定一个族头,并且所有家庭成员都有一个名为family_ID的字段,其主键为family_head的值。

这将为您提供1000个人的准确结果。我已经创建了一个家庭门户网站,现在有超过12k的成员,它对我来说很好。

希望它有所帮助。