Array
(
)

Join retornando apenas um item - como fazer

Pjava
   - 05 mar 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?

Marisiana
   - 05 mar 2014

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

0
|
0

Jefferson Santos
   - 05 mar 2014

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

0
|
0

Luiz
|
MVP
    05 mar 2014

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.

0
|
0