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