Re: [firebase-br] É vantagem usar o Left Join neste casos ?

Jeferson Oliveira jefersonfoliveira em gmail.com
Qui Nov 9 12:17:31 -03 2006


Claudir Pereira dos Santos escreveu:
> Desculpe a intromissão

O debate é público. Fique a vontade :-)


> Ou melhor, o que define se uma tabela esta a esquerda
> ou a direita?

É exatamente a posição em que elas são declaradas na sentença. A
primeira a ocorrer está à esquerda da próxima e assim sucessivamente.

Teste o exemplo abaixo:
select Detalhe.RDB$CONSTRAINT_NAME as NomeFK,
       idxDetalhe.RDB$FIELD_NAME as CampoDetalhe
from RDB$RELATION_CONSTRAINTS Detalhe
left join RDB$INDEX_SEGMENTS idxDetalhe
    on (idxDetalhe.RDB$INDEX_NAME = Detalhe.RDB$INDEX_NAME)

Observe o plano gerado é perceberá que como idxDetalhe está à direita
de Detalhe, e foi espeficado que a junção deve ser feita tendo como
base a tabela da esquerda (LEFT) a pesquisa será realizada na tabela
idxDetalhe, e portanto o índice (se existir, e é bom que exista) dessa
última que será utilizado.

Se trocar LEFT por RIGHT o comportamento será o inverso do acima descrito.


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista