Mysql 如何联接两个表以获取统计信息
我有一个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
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