Mysql查询[0001]

时间:2013-05-10 08:46:16

标签: mysql sql

我有2个MySQL而且我正在尝试获得每个城市拥有至少一只狗的拥有者数量。我的表是:

owners
  id, name, city

dogs
  id, owner_id, name, weight

到目前为止,我有以下内容:

SELECT owners.city, count(dogs.id) AS 'Owners' 
FROM owners INNER JOIN dogs ON (owners.id = dogs.owner_id) 
GROUP BY owners.city

然而,这给了我每个城市的狗总数。但是我想得到每个城市的狗主人数。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您只需要使用DISTINCT字计算所有者ID,该字数仅计算唯一所有者。

SELECT owners.city, count(DISTINCT owners.id) AS 'Owners' 
FROM owners INNER JOIN dogs ON (owners.id = dogs.owner_id) 
GROUP BY owners.city

答案 1 :(得分:0)

您提供的信息无法获得准确的答案。有两个单独的表,每个表都有描述事物(狗,所有者)的属性,但表格是不相交的。

我建议添加" owner_id"专栏"狗"表。然后,您可以从所有者,按城市,等等中进行选择。

更新问题后,为您解决了这个问题:http://sqlfiddle.com/#!2/403f7/4/0