[firebase-br] Fwd: Select com NOT IN

glautter glauber glautterg em gmail.com
Ter Jul 21 00:05:19 -03 2009


mas o id_cidade_origem está na tabela entrega

desculpas, se não entendi. eu não utilizei o NOT IN

fiz o teste e obtive o mesmo resultado


SELECT DISTINCT CID.ID_CIDADE
   , CID.CIDADE
 FROM CIDADES CID, ENTREGAS ENT
WHERE ENT.ID_CIDADE_ORIGEM =:cidade
 AND CID.ID_CIDADE <> ENT.ID_CIDADE_ORIGEM

2009/7/20 Infosag <infosag em terra.com.br>

> cara é importantissimo que tenha o indice id_cidade_origem na tabela
> entrega, senao o not in na ira funcionar!
>
> abs
> ----- Original Message ----- From: "glautter glauber" <glautterg em gmail.com
> >
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, July 20, 2009 1:09 AM
> Subject: Re: [firebase-br] Fwd: Select com NOT IN
>
>
> Primeira dica eh se puder evitar subquery na cláusula where já eh um grande
> passo,
> lógico se não tiver jeito deve-se usar.
> Pois para cada registro de CIDADE vai ser varrida a tabela ENTREGAS
> isso quer dizer se a tabela CIDADE tiver 200 mil campos, será varrida 200
> mil vezes a tabela de ENTREGAS e isso tende a aumentar o custo de acordo
> com
> a inserção de dados.
>
> mas para o seu caso veja se ajuda esta forma
>
> SELECT DISTINCT CID.ID_CIDADE
>    , CID.CIDADE
>  FROM CIDADES CID, ENTREGAS ENT
> WHERE ENT.ID_CIDADE_ORIGEM =:cidade
>  AND CID.ID_CIDADE <> ENT.ID_CIDADE_ORIGEM
>
> esta foi a forma que eu entendi,
>
> abraço,
>
>
>
> 2009/7/19 Magnun Oliveira <magnunoliveira em gmail.com>
>
>  Boa tarde .
>>
>> Tenho uma tabela de cidades e uma de entregas, e nela existe um campo
>> id_cidade_origem e id_cidade ( para o destino ),  ambos foreign key de
>> CIDADES.
>>
>> Gostaria de selecionar todas as cidades da tabela CIDADES que nao
>> receberam
>> nenhuma entrega, de uma cidade de origem especificada por mim.
>>
>> Segue o sql:
>>
>> select cidades.id_cidade, cidades.cidade from cidades where
>> cidades.id_cidade not in (select * from entregas where id_cidade_origem =
>> :cidade)
>>
>> A consulta é efetuada com sucesso, porem demora bastante devido a
>> quantidade
>> de registros.
>>
>> Gostaria de ajuda pra otimizar esta consulta.
>>
>> ps: fiz o seguinte sql:
>>
>> select cidades.id_cidade, cidades.cidade from cidades where not exists
>> (select * from entregas where id_cidade_origem = :cidade)
>>
>> Nao retorna nenhum registro, mesmo ocorrendo mais de 100 cidades que nao
>> receberam entregas da cidade especificada no ":cidade".
>>
>> se tirar o not, retornam todas as cidades da tabela CIDADES.
>>
>> agradeço desde jah.
>> ______________________________________________
>> 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
>>
>> ______________________________________________
> 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
>
> E-mail verificado pelo Terra Anti-Spam.
> Para classificar esta mensagem como spam ou não spam, visite
>
> http://ecp.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0MDQ0OTY1MCNwZXJtIXRlcnJhJjEsMTI0ODA2MzE5OS4zOTQ5MDAuOTgxOS5jYW1lbmFuYS5oc3QudGVycmEuY29tLmJyLDYxNjY=TerraMail
> Verifique periodicamente a pasta Spam para garantir que apenas mensagens
> indesejadas sejam classificadas como Spam.
>
>
>
> ______________________________________________
> 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