[firebase-br] INNER JOIN X NOT EXIST

Magno System magnosysteminformatica em gmail.com
Ter Jan 5 19:09:20 -03 2010


Digamos que você queira o valor da tabela B que não exista na tabela A

TENTE:

SELECT A.CAMPOTABELAA, B.CAMPOTABELAB
FROM TABELAA A
LEFT JOIN TABELAB B ON (A.CAMPOTABELAA - B.CAMPOTABELAB)
WHERE B.CAMPOTABELAB IS NULL

A minha lógica é a seguinte: Com o LEFT JOIN se não houver um valor na 
TABELA B que corresponda ao valor do campo da TABELA A, o campo da tabela B 
virá como nulo.

Não testei. É só um palpite.


----- Original Message ----- 
From: "ericrodrigues" <ericrodrigues1509 em gmail.com>
To: <lista em firebase.com.br>
Sent: Tuesday, January 05, 2010 11:56 AM
Subject: Re: [firebase-br] INNER JOIN X NOT EXIST


> vou tentar simplificar... a unica coisa que preciso e que na query, o 
> INNER JOIN COBRANCAS funcione como um not exist
>
>
> "Eduardo Jedliczka" <edujed em gmail.com> escreveu na mensagem 
> news:82a1441001050509l32d19b21k149edae27b4e589e em mail.gmail.com...
> ericrodrigues, suas informações são insuficientes para que alguém consiga
> lhe ajudar de uma forma realmente eficaz.
>
> Sua modelagem não foi explicitada e nem qual é o papel das tabelas
> Prestacoes / Cobranças.
>
> Como também não sabemos a versão do Firebird (1.0, 2.1, 2.5 RC) não dá 
> para
> sugerir algo performático.
>
> Mas tente quebrar sua lógica e estude um pouco sobre o Execute Block.
> (http://www.firebirdsql.org/refdocs/langrefupd20-execblock.html)
>
> Abraço
>
> Eduardo
>
> 2010/1/5 ericrodrigues <ericrodrigues1509 em gmail.com>
>
>> Olá pessoal...
>>
>> estou com uma query aqui que eu estava usando not exist so que por causa 
>> da
>> subquery estava ficando muito lento... ja cheguei esperar 1hr para os
>> resultados
>> por isso estou tentando usar o inner join pra resolver isso... no 
>> exemplo,
>> estou buscando se encontrar na tabela COBRANCAS... mas se eu quizer 
>> buscar
>> somente o que eu não encontrar???
>>
>> segue a query:
>>
>> SELECT
>>  C.CPF_CNPJ,C.NOME,C.NUM_CARTAO,MIN(P.DTVENC) AS MENORDATA,
>>  SUM(P.VLRPREST) AS SOMA,COUNT(P.CPF_CNPJ) AS TOTAL,C.ENDER,
>>  C.BAIRRO,C.CIDADE,C.UF,C.CEP
>> FROM CLIENTES C INNER JOIN PRESTACOES P ON (C.CPF_CNPJ = P.CPF_CNPJ)
>>  AND (P.DTPAGTO IS NULL) AND (P.DTVENC < CURRENT_TIMESTAMP)
>>
>>  INNER JOIN COBRANCAS CO ON (CO.CODLOJA = P.CODLOJA)                \
>>  AND (CO.NUMREF = P.NUMREF) AND (CO.NUMPREST = P.NUMPREST)    > O 
>> problema
>> esta aqui!!!
>>  AND (CO.TIPO_COBRANCA in (1))
>> /
>>
>> WHERE P.DTVENC >= '10/1/2009' AND P.DTVENC <= '10/15/2009'
>> GROUP BY
>> C.CPF_CNPJ,C.NOME,C.NUM_CARTAO,C.ENDER,C.BAIRRO,C.CIDADE,C.UF,C.CEP
>>
>>
>>
>>
>>
>> ______________________________________________
>> 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
>>
>
>
>
> -- 
> [s]
>
> ==========================
> Eduardo Jedliczka
> Apucarana - Pr
> ==========================
> ______________________________________________
> 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 





Mais detalhes sobre a lista de discussão lista