[firebase-br] JOIN x LEFT JOIN
Andrei Luís
compuvale.software em gmail.com
Ter Jul 20 15:50:05 -03 2010
Josauro,
Não sei a parte técnica de porque a demora, mas no resultado dos dois
selects, a diferença está no tratamento dos registros que não forem
encontrados no join. O join traz apenas os registros que satisfazem o
vínculo, enquanto o left join traz todos os registros da tabela da
esquerda (a que está depois do from), retornando null nos campos que
não forem encontrados na tabela que está no join.
Ex.
Tabela1
codcli data nrcontrole
1 20/07 10
2 20/07 15
3 20/07 20
4 20/07 30
5 20/07 40
Tabela2
codcli nome
1 fulano
2 beltrano
3 sicrano
SELECT tabela1.codcli, tabela1.data, tabela1.nrcontrole, tabela2.nome
FROM TABELA1
JOIN TABELA2 ON (TABELA1.CAMPO = TABELA2.CODIGO)
codcli data nrcontrole nome
1 20/07 10 fulano
2 20/07 15 beltrano
3 20/07 20 sicrano
SELECT tabela1.codcli, tabela1.data, tabela1.nrcontrole, tabela2.nome
FROM TABELA1
LEFT JOIN TABELA2 ON (TABELA1.CAMPO = TABELA2.CODIGO)
codcli data nrcontrole nome
1 20/07 10 fulano
2 20/07 15 beltrano
3 20/07 20 sicrano
4 20/07 30 <null>
5 20/07 40 <null>
[]s
Andrei
Em 20 de julho de 2010 15:25, Josauro S.J. <josauro em casasoft.inf.br> escreveu:
> Tenho uma dúvida que não esta fazendo sentido.....
>
> Na junção de 2 tabelas onde a relação de registros é 1 x 1, se uso Left Join
> é muito mais demorado e o volume de registros lidos tambem é maior do que se
> usar apenas Join, não deveria ser no máximo igual pois se é 1 x 1 qual a
> diferença, apenas se for algo do FB como trata essa questão
>
> SELECT CAMPOS
> FROM TABELA1
> LEFT JOIN TABELA2 ON (TABELA1.CAMPO = TABELA2.CODIGO)
>
> (* Lento e le muito mais registro TABELA1 (pelo log do ibexpert).
>
>
> SELECT CAMPOS
> FROM TABELA1
> JOIN TABELA 2 ON (TABELA1.CAMPO = TABELA2.CODIGO)
>
> (* Rápido e le muito menos registro TABELA1 (pelo log do ibexpert).
>
> O número de registros retornados é igual em ambos os casos, somente a
> estatistica de leitura, que ocorre na tabela1 é maior com LEFT).
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista