1

来自注册用户的表格:

  • id_user
  • id_location
  • 姓名

来自位置的表格:

  • id_location
  • 姓名

我需要知道每个位置有多少用户。像这样的东西:

  • 华盛顿:455
  • 佛罗里达州:185
  • 德克萨斯州:914

它尝试了这种方法,但结果肯定有总和错误。

SELECT location.name,user.id_user FROM user
INNER JOIN location ON user.id_location = location.id_location
WHERE user.id_profile !=0 GROUP BY location.id_location ORDER BY location.name
4

2 回答 2

1
SELECT location.id_location, location.name, COUNT(user.id_user) AS UserCount
FROM user 
INNER JOIN location ON user.id_location = location.id_location 
WHERE user.id_profile !=0 
GROUP BY location.id_location, location.name
ORDER BY location.name 

id_location如果您以某种方式具有相同的位置名称,但位置 ID 不同, 我已将其添加到查询中。

于 2012-08-06T14:35:33.733 回答
1

你真的很接近,你只需要做一个COUNT

SELECT location.name, COUNT(user.id_user) UserCount 
FROM user
INNER JOIN location 
ON user.id_location = location.id_location
WHERE user.id_profile !=0 
GROUP BY location.name
ORDER BY location.name
于 2012-08-06T14:36:47.160 回答