[AccessD] Query fails when using NOT IN ???

Gustav Brock gustav at cactus.dk
Fri Apr 23 03:41:32 CDT 2004


Hi Francisco

> Gustav,
>    David quoted an article for Sql Server in which this is 100% 
> reproducable.  I think he posted it here because of the initial posts of 
> problems where the IN clause or rather (NOT IN) was not behaving as 
> expected.  for that manner I've also seen it do this, one major 
> workaround is to explicitly point the inner quiery to that of the outer 
> query. that way any possible errors will be trapped

> SUCH as

>   DELETE FROM
>     TitleAuthor
>   WHERE
>     au_id IN (SELECT au_id FROM Publishers WHERE Publishers.au_id=TitleAuthor.au_id)

But Christopher didn't refer to SQL Server, that's why I thought it
would be more relevant to show that this bug is non-existing in Jet SQL.

Further, I guess including the where clause will perform much slower?
If you really need to do that, couldn't this do (I have no SQL Server
to play with):

     au_id IN
     (SELECT au_id FROM Publishers WHERE Publishers.au_id Is Not Null)

/gustav


>>>Pinnacle's SQL Server Professional, February 2002 (Volume 8, Number 2),
>>>"Known Problems with IN/NOT IN()"
>>>    
>>>
>>I can't recognize this; it behaves very politely.
>>The syntax doesn't work in Jet SQL, but this does:
>>
>>  DELETE FROM
>>    TitleAuthor
>>  WHERE
>>    au_id IN (SELECT au_id FROM Publishers)
>>
>>and it deletes zero records if Publishers is empty. If au_id doesn't
>>exist as a field, Access asks for it as a parameter.
>>So this is exactly as expected.
>>
>>Can you provide another example? Or are you talking about another SQL
>>engine?




More information about the AccessD mailing list