繁体   English   中英

计算一个表中的家庭成员数,用于另一张名为 house 的表中的每一行?

[英]Count number of family members from one table for each rows in another table called house?

我有两个 MySQL 表,第一个是房子,第二个是家庭,房子表有两列称为house_idhouse_name ,而第二个表有三列family_id, member_name家庭表中的最后一列用于从第一个表中引用 house_id是house_id

概念:如何通过仅在房屋表上获取来获取具有/来自某个房屋的家庭成员的数量并将计数的数字放入 HTML 表中?

我创建了以下脚本来从家里取货,

SELECT * FROM house;

我像这样使用 foreach 操作获取的数据,

    $mystmt = $db -> prepare('SELECT * FROM house');
    $mystmt->execute();
    $myresult = $mystmt->fetchAll();

    foreach($myresult as $mydata) {

        $myarray = array();         
        $myarray[] = $mydata['house_id'];
        $myarray[] = $mydata['house_name']; 
        $output[] = $myarray;

    }
    echo json_encode($output);

在上面的代码中,我只得到两列house_idhouse_name ,现在如何调整此代码以从家庭表中计数,以便我可以获得另一列名为total_family_members

像这样

family_id    | member_name   | house_id
    
    1        | John Jackson  | 1
    2        | Ketty Bebe    | 2
    3        | Maam Juke     | 1
    4        | Tike Nuke     | 2
    5        | Carol Michael | 2

期望的结果

house_id | house_name | total_family_members

1        | Joh's house| 2

2        | kim's house| 3

在您的示例中,涉及两个不同的过程:

  1. 将每个人的房屋 ID 链接到房屋名称。 这可以通过 JOIN 来实现。
  2. 数一数每间房子的人数。 这可以通过 GROUP BY 和 COUNT 来实现。

这是一个解决方案:

SELECT house.house_id , house.house_name , COUNT( * ) AS total_family_members
FROM house 
INNER JOIN family ON family.house_id = house.house_id
GROUP BY family.house_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM