Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Desbravador

Erro em consulta

Recommended Posts

E ai pessoal eu to comum problema em um select,

é o seguinte ele traz os resultados porem todos os campos da tabela

produtos_resposta vem um resultado repetido alguém pode me ajudar?

 

SELECT MAX(`produtos_duvidas`.`id`) as produtosRes,

`produtos_respostas`.`id`,

`produtos_respostas`.produtos_duvida_id,

`usuarios`.`id` as idUsuario,

`usuarios`.`nome` as nomeUsuario,

`visitantes`.`nome` as nomeVisitante,

`clientes`.`nome` as nomeCliente,

`usuarios`.`email` as emailUsuario,

`visitantes`.`email` as emailVisitante,

`clientes`.`email` as emailCliente,

`produtos_duvidas`.`remetente` as nomeRemetente,

`locais_vendas`.nome as localVendas ,

`produtos`.`descricao` as descricaoProduto ,

`produtos_duvidas`.`conteudo` as conteudosDuvidas,

`produtos_respostas`.`conteudo` as conteudoRespostas,

DATE_FORMAT(`produtos_duvidas`.`data_duvida` ,'%d/%m/%Y') as

dataDuvida

FROM `locais_vendas`

INNER JOIN `produtos_locais_vendas` ON

`produtos_locais_vendas`.`locais_venda_id` = `locais_vendas`.id

INNER JOIN `produtos` ON `produtos`.`id` =

`produtos_locais_vendas`.`produto_id`

INNER JOIN `produtos_duvidas` ON `produtos_duvidas`.`produto_id` =

`produtos`.`id`

INNER JOIN `produtos_respostas`

LEFT JOIN `usuarios` ON `usuarios`.`id` =

`produtos_respostas`.`usuario_id`

INNER JOIN `clientes` ON `clientes`.`id` =

`produtos_duvidas`.`cliente_id`

INNER JOIN `visitantes` ON `visitantes`.`id` =

`produtos_duvidas`.`visitante_id`

WHERE `clientes`.`nome` LIKE '%%' AND `visitantes`.`nome` LIKE '%%'

AND

`produtos_duvidas`.`remetente` LIKE '%%' AND `clientes`.`email` LIKE '%

%' AND

`visitantes`.`email` LIKE '%%' AND `produtos_duvidas`.`email` LIKE '%

%' AND

`produtos_respostas`.`data_resposta` BETWEEN '1900-01-01' AND

'2200-12-12'

GROUP BY `produtos_duvidas`.`id`

ORDER BY produtosRes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lembre-se que o INNER JOIN é um FULL JOIN, a cada linha que retornar na primeira tabela, a tabela de cada join vai retornar também.

Então o que você deve fazer é especificar em cada INNER JOIN outra condição específica. E é claro, você pode usar o DISTINCT

SELECT DISTINCT `produtos_respostas`.`id`,
MAX(`produtos_duvidas`.`id`) as produtosRes,

 

PS: Você é um dos poucos brasileiros que eu vi aqui no fórum que se preocupa em utilizar a sintaxe normalizada do MYSQL, com ` nos nomes dos campos e usando AS pros aliases, tá de parabéns! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você é um dos poucos brasileiros que eu vi aqui no fórum que se preocupa em utilizar a sintaxe normalizada do MYSQL, com ` nos nomes dos campos e usando AS pros aliases, tá de parabéns!

que eu mal pergunte, de onde você tirou isso?

 

faltou o mais prático que é colocar alias para as tabelas.

e essas aspinhas tortas são umas coisas muito sinistras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isto nao tem a ver som normalização

 

o conceito é outro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.