[firebase-br] Fwd: Select com NOT IN

Magnun Oliveira magnunoliveira em gmail.com
Seg Jul 20 00:21:21 -03 2009


Muito Obrigado pela resposta Cantu.

quando executo o sql que vc passou, ocorre o seguinte erro:


ISC ERROR CODE:335544569

ISC ERROR MESSAGE:
Dynamic SQL Error
SQL error code = -206
Column unknown
CIDADES.DB_KEY
At line 3, column 16

Acho q é algo relacionado com o "DB_KEY" da tabela CIDADES.

Substituí o "select c.id_cidade, c.cidade" por "select *" apenas para fazer
funcionar e o resultado foi:

* se o codigo da cidade indicada no :"cidade" NAO EXISTIR nenhuma entrega
relacionada a essa origem, o SQL retorna apenas uma linha, com esta cidade
em questao.

** se o codigo da cidade indicada no ":cidade" EXISTIR alguma entrega
relacionada a essa origem, independente da quantidade, o resultado do SQL é
vazio.

estrutura da tabela cidades:

(pk) id_cidade
cidade

estrutura da tabela entregas:
(pk) id_entrega,
(fk) id_cidade_origem,
(fk) id_cidade ( esse campo significa o destino, originalmente era
Id_cidade_destino mas mudei o seu nome para testes no sql).
data ... hora .... etc ...

supondo que eu tenha as cidades 1,2,3,4 e 5 e fiz Duas entregas partindo da
cidade 2, com destino p/ as cidades 1 e 3 respectivamente.

 gostaria de selecionar as cidades que nao receberam entregas da cidade 2.
o resultado teria que ser: 2, 3 e 5.

obrigado.

ps: desculpe pelo texto longo.




2009/7/19 Carlos H. Cantu <listas em warmboot.com.br>

> 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)
>
>



Mais detalhes sobre a lista de discussão lista