[firebase-br] Fwd: Select com NOT IN

Magnun Oliveira magnunoliveira em gmail.com
Seg Jul 20 12:56:20 -03 2009


já havia tentado isso e o tempo de retorno foi o mesmo.
agradeço a todos, e consegui resolver com o exists, coletando varias dicas
da net que peguei esse fim de semana + as dicas dos colegas aqui:
SELECT id_cidade, cidade
FROM cidades c
WHERE NOT EXISTS (SELECT first 1 NULL
FROM entregas e
WHERE e.id_cidade_origem = c.id_cidade and e.id_cidade_origem = :cidade)

ps: soh nao entendi mt bem o "first 1 null", porem me indicaram afirmando
que otimizaria a consulta.
estou fazendo uns testes para comparar o tempo de resposta com o NOT IN.

2009/7/20 Carlos Gilson <krlosgilson em gmail.com>

> Simplificando todas as respostas...
>
> tente:
>
>  select c.id_cidade, c.cidade from cidades c where
> c.id_cidade not in (select e.id_cidade_origem from entregas e)
> where c.id_cidade =:pCidade //utilize esta linha se vc deseja obter o
> retorno apenas de uma cidade através do parâmetro pCidade
>
> Obs: O Problema do seu select era justamente porque ao invés de selecionar
> apenas o campo "id_cidade_origem" vc está utilizando * (que faz com q
> retorne todos os campos da tabela, aumentando o tempo de resposta). Não se
> preocupe em criar índice no campo id_cidade_origem pois ele já é um foreign
> key
> ______________________________________________
> 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