OK, thanks again. 

-----Original Message-----
From: Igor Tandetnik [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 20, 2007 10:56 AM
To: SQLite
Subject: [sqlite] Re: Re: Looking for equivalent syntax

Anderson, James H (IT)
<Jim.Anderson-/PgpppG8B+R7qynMiXIxWgC/[EMAIL PROTECTED]> wrote:
> In order to improve my understanding, I'd like to ask 2 questions re
> the
> sql, below.
>
> 1. what is the relationship between the "select * from where" within
> the
> "where exists" and the "select yadayadayada from where" within the
> set?

No direct relationship. However, the conditions in the two selects are 
designed to be similar enough, so that when EXISTS test succeeds by 
finding a suitable row, the select in SET would extract a field from 
that same row.

> 2. why is it not necessary to include the "b.CDEvent=c.CDEvent" which
> is
> present in the "where exists" in the "where" within the set?

Now that I think of it, it might be necessary to join to tmp_events in 
the SET clause after all. Suppse the data looks like this:

select CDId from C1_credDerivEvent;
1

select CDId, CDEvent from C1_tmp_credDerivEvent;
1    10
1    20

select CDEvent from tmp_events;
20

Here a select that uses all three tables would produce 20. A select that

omits tmp_events would produce two records with the values 10 and 20, 
from which SQLite would just pick the first one. This could be 10, 
giving a wrong answer.

So to be on the safe side, make it

update C1_credDerivEvent
    set CDEvent = CDEvent || ',' ||
        (select b.CDEvent
         from C1_tmp_credDerivEvent b, tmp_events c
         where C1_credDerivEvent.CDId = b.CDId and b.CDEvent=c.CDEvent)
where exists (
    select * from C1_tmp_credDerivEvent b, tmp_events c
    where C1_credDerivEvent.CDId = b.CDId and b.CDEvent=c.CDEvent
)

Igor Tandetnik 


------------------------------------------------------------------------
-----
To unsubscribe, send email to [EMAIL PROTECTED]
------------------------------------------------------------------------
-----
--------------------------------------------------------

NOTICE: If received in error, please destroy and notify sender. Sender does not 
intend to waive confidentiality or privilege. Use of this email is prohibited 
when received in error.

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to