Join retornando apenas um item - como fazer

05/03/2014

Tenho três tabelas. Necessito joinar ou fazer outra coisa de forma, que os itens não se repitam, tipo. Na taela 1 tenho 4 itens. Na tabela dois tenho 8. Acontece que fazendo um join, cada item da tabela um se repetirá 8 vezes, é óbvio, pela quantidade de linhas que tenho na tabela 2. Gostaria de fazer um join ou outra coisa, que eu teria 1 item da primeira linha e tantos itens da segunda, quanto for sua associação com a primeira. Como eu faço isso?

Respostas

05/03/2014

Marisiana

Bom dia!
Você poderia postar a estrutura das duas tabelas com as respectivas foreing keys?
Responder Citar

05/03/2014

Jefferson Santos

Utilize a clausula distinct acredito que isso deva solucionar seu problema.
Responder Citar

05/03/2014

Luiz Currículo

Você também pode agrupar suas tabelas utilizando a cláusula o group by ...

um exemplo besta:

select pessoa_id, count(endereco_id) as qtdEndereco from Pessoa
inner join Endereco on (endereco_pessoa = pessoa_id)
group by pessoa_id

tudo depende do que você realmente quer retornar na tabela, neste caso retornaria quantos endereços tal pessoa tem cadastrado em apenas 1 registro por pessoa ... e não retornaria vários registros (Dependendo da qtde de endereços) como seria se eu não usasse o group by.

Responder Citar