[firebase-br] Join

Paulo Sergio Xavier Soares paulosoares.br em gmail.com
Ter Out 16 19:57:53 -03 2007


INNER JOIN retorna uma relação bijetora, isto é, todas as linhas
retornadas possuem informações de ambas as tabelas. Exemplo:

select P.Nome,F.Nome
     from Pessoas P inner join Filhos F on F.Pai = P.Id
-- só retorna as pessoas que têm filhos e todos os filhos de cada pessoa


LEFT JOIN retorna uma relação injetora, isto é, todas as linhas
retornadas possuem informações da tabela principal, mas não
necessariamente da tabela relacionada.

select P.Nome,coalesce(F.Nome,'<sem filhos>')
     from Pessoas P left join Filhos F on F.Pai = P.Id
-- retorna todas as pessoas (mesmo as que não têm filhos) e os filhos
correspondentes, quando for o caso


RIGHT JOIN também retorna uma relação injetora, mas, neste caso, todas
as linhas retornadas possuem informações da tabela relacionada, mas
não necessariamente da tabela principal.

select coalesce(P.Nome,'<não cadastrado>'),F.Nome
     from Pessoas P right join Filhos F on F.Pai = P.Id
-- retorna todos os filhos, tanto aqueles que têm pais quanto aqueles
cujos pais ainda não foram cadastrados


ON não é um operador, mas, sim, uma cláusula obrigatória do JOIN. Ela
indica como os registros das tabelas devem ser relacionados para o
retorno.



Em 16/10/07, Domenico Schettini Filho<domenicoschettini em gmail.com> escreveu:
> O que os diferentes comandos Join(INNER, LEFT,RIGHT) fazem em uma tabela?
> E porque junto deles usa-se o operador on e pra que este serve?
> Obrigado pela atenção.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


-- 
___________________________________
*** Paulo Sergio Xavier Soares ***
Skype: Allumo, E-mail: paulosoares.br em gmail.com, MSN: paulosxs em yahoo.com.br
Consultor em Informatica
Matematica - UEM

Obs: Se o seu leitor de e-mail não estiver configurado para emitir
resposta automática do recebimento, favor responder essa mensagem para
o confirmar.




Mais detalhes sobre a lista de discussão lista