Ir para conteúdo

POWERED BY:

Arquivado

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

halfar

inner join - repeticao de resultado

Recommended Posts

uma instrucao sql relaciona 2 tabelas com inner join.

 

a tabela A contem os dados principais:

id_materia, titulo, materia

 

a tabela B contem apenas 2 campos:

id_materia, imagem

 

As tabelas são relacionadas pelo campo id_materia, e preciso

pegar todas as imagens cadastradas de acordo com o campo id_materia.

 

Então vamos supor que a tabela A contem um registro que contem 5 imagens relacionadas

 

Ao executar a instrucao sql traz um resultado de 5 linhas porque

o registro da Tabela A contem 5 imagens relacionadas, isto me

cria problemas na hora de listar os resultados, pois ira repetir informações

da Tabela A 5 vezes.

 

Se incluir a clausula group by na instrucao sql, ai me retorna apenas 1 linha (e isto deveria ser o correto,

mas traz somente 1 imagem, quando deveria trazer 5 imagens).

 

Será que deu para entender??

 

 

Segue a instrucao sql

 

select imagens_tecnologia.imagem, imagens_tecnologia.id_materia, novidades_tecnologia.titulo, novidades_tecnologia.texto, novidades_tecnologia.cliques, novidades_tecnologia.id_materia,

novidades_tecnologia.data from(novidades_tecnologia inner join imagens_tecnologia on imagens_tecnologia.id_materia = novidades_tecnologia.id_materia)

group by imagens_tecnologia.imagem, novidades_tecnologia.data desc, novidades_tecnologia.cliques desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi você quer trazer uma linha para cada consulta retornando todas as imagens vinculadas a um mesmo produto.

 

Nesse caso acho que esse exemplo pode te ajudar:

 

Tabela Produtos

idProdutos / nome

1 / Maça

2 / Abacaxi

3 / Uva

 

 

Tabela Imagens

idImagens / idProduto / imagem

1 / 1 / Maça podre

2 / 1 / Maça vermelha

3 / 1 / Maça verde

4 / 2 / Abacaxi cortado

5 / 2 / caipirinha de abacaxi

 

 

SELECT
p.nome, group_concat(imagem separator ', ') as imagens
FROM
Produtos p
INNER JOIN
Imagens i ON i.idProduto = p.idProdutos
group by p.idProdutos;
resultado:
nome / imagens
Maça / Maça podre, Maça vermelha, Maça verde
Abacaxi / Abacaxi cortado, caipirinha de abacaxi
Obs.: Devido ao Inner Join, o produto Uva, não foi listado por não ter nenhuma imagem relacionada.
Qualquer dúvida é só responder o tópico.

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.