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