INNER JOIN retorna valores errados
Amigos tenho a seguinte situação com as seguintes tabelas:
total
planta
un
nome
Tenho vários itens cadastrados, sendo que todas as tabelas tem a seguinte estrutura:
id(auto incremente), código, texto livre
Fiz um INNER JOIN para relacionar os elementos "texto livre" usando o "código" para a união, exemplo:
total: codigo 5, texto a
planta: codigo 5, texto b
un: codigo 5, texto c
nome: codigo 5, texto n
O problema é que retorna errado, duplicando os valores.
Para entender segue o código:
SELECT total.codigo, total.total,
planta.planta, un.un, nome.nome
FROM
total INNER JOIN planta INNER JOIN un INNER JOIN nome
ON
total.codigo = planta.codigo
AND
total.codigo = un.codigo
AND
total.codigo = nome.codigo
WHERE
total.codigo = '10'
GROUP BY total.id
Retornou:
id total codigo unidade nome
10 10 25 Tonelada ABACATE
10 500 25 Tonelada ABACATE
E deveria vir:
id total codigo unidade nome
10 10 25 Tonelada ABACATE
10 500 25 Kilograma LARANJA
Ou seja, total vem correto mas unidade e nome repetem.
Percebi que com 2 tabelas funciona desta forma mas com 3 ou mais se repetem.
Qual a solução, se é que há uma além de mudar todo o meu banco de dados? Tem como manter assim?
Discussão (8)
Carregando comentários...