Mysql 多重连接使总和加倍

Mysql 多重连接使总和加倍,mysql,join,subquery,sum,Mysql,Join,Subquery,Sum,我想做一个查询,但它的总和加倍了 SELECT cidades.id AS id, cidades.name AS municipio, Sum(conjuntos.n_uhs) AS uh, programas.id AS programa, conjuntos.name FROM conjuntos Inner Join conjuntos_programas ON conjuntos_programas.conjunto_id = conjuntos.id Inner Join progr

我想做一个查询,但它的总和加倍了

SELECT
cidades.id AS id,
cidades.name AS municipio,
Sum(conjuntos.n_uhs) AS uh,
programas.id AS programa,
conjuntos.name
FROM
conjuntos
Inner Join conjuntos_programas ON conjuntos_programas.conjunto_id = conjuntos.id
Inner Join programas ON programas.id = conjuntos_programas.programa_id
Inner Join cidades ON conjuntos.cidade_id = cidades.id
WHERE
conjuntos.situation_id =  2
GROUP BY
conjuntos.cidade_id
ORDER BY
municipio ASC

听起来您的两个或多个表之间有一对多的关系来执行此操作。尝试执行
选择*
并开始调试您的查询,以查看它在哪里复制行。

如果有重复行,可以通过从查询中删除
分组依据和
总和(…
来检查这一点。
按如下所示更改查询,并告诉我这是否解决了问题

SELECT DISTINCT
  cidades.id AS id,
  cidades.name AS municipio,
  SUM(conjuntos.n_uhs) AS uh,
  programas.id AS programa,
  conjuntos.name
FROM conjuntos
INNER JOIN conjuntos_programas ON conjuntos_programas.conjunto_id = conjuntos.id
INNER JOIN programas ON programas.id = conjuntos_programas.programa_id
INNER JOIN cidades ON conjuntos.cidade_id = cidades.id
WHERE conjuntos.situation_id =  2
GROUP BY conjuntos.cidade_id
ORDER BY municipio ASC