MySql总数大于单个元素

时间:2016-10-18 09:02:18

标签: mysql

我有一个巨大的MySql表正在生产中使用。我有一些表,这些表由地理区域命名,外键用于较小的分区。它的结构类似于db_country-> tbl_city1,tbl_city2,tbl_city3和每个tbl_city都有内部住户的行,其中包括街道,地址和每个家庭的人数等。

问题:如果我为每个按STREETS分组的家庭提取数据,我会得到正确数量的人,但当我拨打整个城市的人数时,我会得到一个略微膨胀的数字。我知道必须有一些我搞砸的事情,这种情况下可能的失败区域是什么?

产生膨胀输出的第一个查询是:

SELECT sum(people) AS people FROM city WHERE division=2136 AND status=1;

,产生正确输出的第二个查询是:

SELECT street.name, SUM(people) AS people FROM city INNER JOIN streets
ON city.street=streets.id WHERE division=2136 AND status=1
GROUP BY street.name;

图片是实际输出,上表显示总计(充气),而下图则显示具有正确数字的个别街道/村庄MYSQL OUTPUT IMAGE

1 个答案:

答案 0 :(得分:2)

城市表中有记录没有与联接city.street=streets.id匹配的相关街道记录 试试这个sql找出错过的记录。

Select city.* from city left join street on city.street=streets.id 
WHERE division=2136 AND status=1 where street.id is null.