Multiple Joins Mysql удваивает значения SUM - PullRequest
0 голосов
/ 31 мая 2011

Я пытаюсь сделать запрос, но он удваивает значения суммы

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

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

У вас есть повторяющиеся строки, вы можете проверить это, удалив group by и SUM(... из вашего запроса.
Измените запрос следующим образом и скажите мне, если это решит проблему.

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
0 голосов
/ 31 мая 2011

Похоже, у вас есть отношения один-ко-многим между двумя или более вашими столами.Попробуйте выполнить SELECT * и начните отладку запроса, чтобы увидеть, где он дублирует строки.

...