2011-05-31 54 views
0

我试着让AA查询,但其加倍和值多次join mysql的双打和值

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 

回答

1

您有重复行,您可以通过从查询中删除group bySUM(...来检查此行。
更改查询如下,并告诉我,如果解决问题。

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

这听起来像你有一到两个或更多的表之间一对多的关系在做这个。尝试做一个SELECT *并开始调试您的查询,以查看它在哪里复制行。