如何选择表名,然后计算每个表中的记录数

时间:2016-06-16 18:56:09

标签: mysql

我有一个名为family_names的查找表。它包含一个id和名称。每个名称对应一个名为family_members 的唯一表,其中包含每个家庭成员的记录。

例如,family_names可能包含:

table family_names

1 Doe
2 Smith

然后我们会有一张名为Doe和Smith的表。

表doe

1 Wife
2 Child
3 Child

表史密斯

1 Husband
2 Child

我想编写一个选择来自family_names的所有名称的查询。但是,我也想让它返回每个家庭的家庭成员人数。

查询应返回以下内容。

[
  {
    "name": "Doe",
    "count": "3"
  },
  {
    "name": "Smith",
    "count": "2"
  }
]

我很难接近这个查询。你可以采取什么方法?例如,相关子查询,连接等

3 个答案:

答案 0 :(得分:1)

尝试:

Select family_names.name, count(*)
from family_names join family_members on family_names.name = family_members.name
group by family_names.name

(注意:我没有测试过这个,但我相信我的语法正确)

答案 1 :(得分:0)

你可以在内连接上使用组吗

select family_names.name , count(*)
inner join family_members on family_names.id  = family_members. name_id
group by family_names;

答案 2 :(得分:0)

您可以使用子查询。

示例:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301,NC]