[firebase-br] Escolha entre Sub-Selects ou Joins.

Denis denisrocha em hotmail.com
Sex Mar 9 09:15:14 -03 2007


Não sei onde li. Mas já vi em algum lugar que se deve evitar ao máximo o uso 
de sub selects.


Denis


"Fernando Reis Guimarães" 
<fernandobhz em gmail.com> escreveu na mensagem 
news:16cc01920703081551s7d49e6e0g96fd1a28c9a9d06a em mail.gmail.com...
bastante diferença

Em 01/03/07, Fernando Lopes 
<fernandolopesrn em gmail.com> escreveu:
>
> Gostaria de acrescentar uma perguntinha, no caso de situações onde podemos
> usar um ou outro "método", em relação a performance há diferenças?
>
>
> Fernando
>
> Em 01/03/07, Marcelo Silva 
> <marcvan em ig.com.br> escreveu:
> >
> > Eu mudaria sua expressão de "cada caso é um caso" para "cada função é
> para
> > um caso"
> > JOIN serve para Juntar tabelas
> > SUB-SELECT serve para selecionar registros em determinadas situações
> >
> > Exmplo: JOIN
> >
> > SELECT
> >   CLI.NOME,
> >   CID.CIDADE
> > FROM TAB_CLIENTES CLI
> > INNER JOIN CIDADES CID ON(CID.COD_CID = CLI.COD_CID)
> >
> > Neste select traremos as os clientes e as cidades onde moram os clientes
> > um
> > sub-select aí não seria apropriado a pesar de funcionar
> >
> > Exemplo: SUB-SELECT
> >
> > SELECT
> >   P.PROD_DESC
> >   SELECT VALOR FROM ITENS WHERE (COD_PROD = P.COD_PROD) AS TOTAL
> > FROM PEDIDOS P
> >
> > Neste traremos os produtos e seu valor total somando o valor dos Itens
> no
> > SubSelect
> >
> > Neste segundo caso não daria pra usar o JOIN pois não seria uma junção
> de
> > tabelas e sim selects distintos
> >
> > Espero ter ajudado...
> >
> >
> > ----------------------
> > Marcelo Silva
> > (11) 9693-4251
> > (11) 6723-3106 - LESTCRED
> > MSN: marcvan em ig.com.br
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: "Rubens J Rodrigues" 
> > <rubens.rodrigues em abrevo.com.br>
> > To: <lista em firebase.com.br>
> > Sent: Thursday, March 01, 2007 4:37 PM
> > Subject: [firebase-br] Escolha entre Sub-Selects ou Joins.
> >
> >
> > Pessoal,
> >
> > Sei que cada caso é um caso, e que mais ainda tudo depende do resultado
> > dos testes feitos, mas, tenho uma dúvida :
> >
> > Qual seria o melhor método, usar subselects ou joins ? ex.:
> >
> >   1) Se eu faço um select na tabela de clientes, e precisar buscar em
> > qual regiao de ele pertence, quanto ele já comprou, quanto já foi
> > bonificado.
> >
> >   a) Com sub-select :
> >      select  clientes.codigo,
> >              clientes.nome,
> >              (select nomeregiao from regioes where
> > regioes.codregiao=clientes.codigo),
> >              (select coalesce(sum(notafsaid.vlatend),0) from notafsaid
> > where notafsaid.codcli=clientes.codigo where tipovenda=1),
> >              (select coalesce(sum(notafsaid.vlatend),0) from notafsaid
> > where notafsaid.codcli=clientes.codigo where tipovenda=5)
> >
> >      from
> >              clientes.
> >
> >
> >   b) Com Join
> >      select  clientes.codigo,
> >              clientes.nome,
> >              regioes.nomeregiao,
> >              (select coalesce(sum(notafsaid.vlatend),0) from notafsaid
> > where notafsaid.codcli=clientes.codigo where tipovenda=1),
> >              (select coalesce(sum(notafsaid.vlatend),0) from notafsaid
> > where notafsaid.codcli=clientes.codigo where tipovenda=5)
> >
> >      from
> >              clientes
> >              left outer join regioes on
> > clientes.codregiao=regiores.codregiao.
> >
> > Obrigado
> >
> >
> >
> > ______________________________________________
> > 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
> >
> >
> > ______________________________________________
> > 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
> >
> ______________________________________________
> 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
>



-- 
Atenciosamente,
Fernando Reis Guimarães.

Contatos
fernando em fernandobhz.com
http://www.fernandobhz.com
Celular 9213-3727.
______________________________________________
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







Mais detalhes sobre a lista de discussão lista