[firebase-br] Fwd: Select com NOT IN

Carlos H. Cantu listas em warmboot.com.br
Dom Jul 19 21:42:38 -03 2009


Tente:

select c.id_cidade, c.cidade
from cidades c
where (c.id_cidade = :cidade) and
      not exists (select * from entregas e where e.id_cidade_origem = c.id_cidade)


[]s
Carlos H. Cantu
www.FireBase.com.br - www.firebirdnews.org
www.warmboot.com.br - blog.firebase.com.br

MO>  Boa tarde .

MO> Tenho uma tabela de cidades e uma de entregas, e nela existe um campo
MO> id_cidade_origem e id_cidade ( para o destino ),  ambos foreign key de
MO> CIDADES.

MO> Gostaria de selecionar todas as cidades da tabela CIDADES que nao receberam
MO> nenhuma entrega, de uma cidade de origem especificada por mim.

MO> Segue o sql:

MO> select cidades.id_cidade, cidades.cidade from cidades where
MO> cidades.id_cidade not in (select * from entregas where id_cidade_origem =
MO> :cidade)

MO> A consulta é efetuada com sucesso, porem demora bastante devido a quantidade
MO> de registros.

MO> Gostaria de ajuda pra otimizar esta consulta.

MO> ps: fiz o seguinte sql:

MO> select cidades.id_cidade, cidades.cidade from cidades where not exists
MO> (select * from entregas where id_cidade_origem = :cidade)

MO> Nao retorna nenhum registro, mesmo ocorrendo mais de 100 cidades que nao
MO> receberam entregas da cidade especificada no ":cidade".

MO> se tirar o not, retornam todas as cidades da tabela CIDADES.

MO> agradeço desde jah.






Mais detalhes sobre a lista de discussão lista