[firebase-br] Escolha entre Sub-Selects ou Joins.
Marcelo Fortes
ibfirebird em yahoo.com
Ter Mar 13 15:25:15 -03 2007
É por aí, a utilização de Joins e sub-selects são análogas, isto é, você pode na maioria dos casos obter o mesmo resultado, salvo que em subselects há uma maior flexibilidade em que as vezes os joins não alcançam, mas no geral até onde eu observei os Joins são um pouco mais rápidos.
Leia este post é elucidativo:
http://mail.firebase.com.br/pipermail/lista_firebase.com.br/2005-July/016323.html
Marcelo Fortes.
terossi <terossi em lightsystemsoft.com.br> wrote: 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" 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"
To:
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
---------------------------------
8:00? 8:25? 8:40? Find a flick in no time
with theYahoo! Search movie showtime shortcut.
Mais detalhes sobre a lista de discussão lista