[firebase-br] Escolha entre Sub-Selects ou Joins.
Fernando Reis Guimarães
fernandobhz em gmail.com
Ter Mar 13 15:05:44 -03 2007
na minha visão é isso mesmo...
sempre que puder use o exists ou joins depois um subselect
Em 12/03/07, terossi <terossi em lightsystemsoft.com.br> escreveu:
>
> certo, intao pelo que disse só é recomendado utilizar sub-select
> quando
> necessito que ele execute alguma operação onde nao posso executar com o
> join
> é isso? caso contrario sempre utilizar join?
>
> "Marcelo Silva" <marcvan em ig.com.br> escreveu
> na mensagem news:022301c75c3c$2c755a70$9d00a8c0 em terminal15lest...
> 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.
Mais detalhes sobre a lista de discussão lista