Mysql 如何联接两个表以获取统计信息

Mysql 如何联接两个表以获取统计信息,mysql,sql,database,Mysql,Sql,Database,我有一个MySQL数据库,其中有两个表: Members - id, name, city_id 以及: 我想要一个查询,将返回每个城市的名称和有多少成员在其中 我需要的输出是: city_name count ------------------ New York 15 Los Angeles 20 大概是这样的: SELECT a.name, COUNT(DISTINCT b.city_id) FROM Cities a JOIN Members b ON b.ci

我有一个MySQL数据库,其中有两个表:

Members
 - id, name, city_id
以及:

我想要一个查询,将返回每个城市的名称和有多少成员在其中

我需要的输出是:

city_name    count
------------------
New York     15
Los Angeles  20
大概是这样的:

SELECT a.name, COUNT(DISTINCT b.city_id) 
FROM Cities a JOIN Members b 
ON b.city_id = a.id  
GROUP BY b.city_id 
select city.name, count(member.id)
from city
inner join members
on city.id = members.city_id
group by city.name
试试这个

SELECT c.name city_name, COUNT(m.id) counter
FROM Cities c INNER JOIN Members m
ON c.id = m.city_id
GROUP BY c.name

试着这样做:

SELECT a.name, COUNT(DISTINCT b.city_id) 
FROM Cities a JOIN Members b 
ON b.city_id = a.id  
GROUP BY b.city_id 
select city.name, count(member.id)
from city
inner join members
on city.id = members.city_id
group by city.name

希望这有帮助。

工作正常,但计数函数中没有DISTINCT。应该是COUNT(DISTINCT b.id)嘿,如果我有另一个名为“posts”的表,它有“city\U id”属性,我能得到相同的结果并在每个城市中添加多少帖子吗?类似这样的东西:城市名称,会员人数,职位人数纽约,15,20洛杉矶,12,30你可以使用相同的方法,只需添加另一个连接。但是在使用JOIN时要小心,因为如果在Members/Cities表中没有结果,您就不会得到该城市的任何结果。要获得没有任何成员/帖子的城市的结果,请使用LEFT JOINOk,我刚刚做了一个回滚:)内部联接不会显示任何成员为零的城市。因此,如果用户需要显示零的城市,他们应该使用左连接。
select city.name, count(member.id)
from city
inner join members
on city.id = members.city_id
group by city.name