Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to make such query?
Message
De
26/12/2005 11:23:34
 
 
À
26/12/2005 10:29:14
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Database:
Visual FoxPro
Divers
Thread ID:
01080746
Message ID:
01080830
Vues:
14
Fabio,

thanks for the sequence,

I am, however puzzled

>>Shouldn't that be HAVING instead of WHERE ?
>>
>No. They are equal on this context.
...
>>So, since no records have (fk is null), no records will pass the WHERE clause. Look at the output of (3)
>
>Have you looked the (3) ? It return one row.


Why, (vfp6 sp5) does (3) return an empty set over here and 1 row on your computer ? Something I am missing ?
ie, HAVING = 1 row, WHERE = zero rows

>>
>>create cursor Customer (c_id I)
>>	insert into Customer values(1)
>>	insert into Customer values(2)
>>	
>>	Create cursor Orders( ord_id I, Ord_c_id I )
>>	
>>	insert into Orders values (22, 2)
>>	insert into Orders values (24, 2)
>>	
>>	&& find customers without order(s)
>>	
>>	&& (1)
>>	select	c_id ;
>>		from Customer ;
>>		into cursor tmp1 ;
>>		where	( not exists ;
>>					(select * from Orders where (Ord_c_id = c_id) ) ;
>>				);
>>				
>>	brow
>>	
>>	&& (2) left join, with having
>>	select	c_id, ;
>>			ord_id ;
>>		from Customer ;
>>			left join Orders on (Ord_c_id = c_id) ;
>>		into cursor tmp2 ;
>>		having ( ord_id is null )
>>	
>>	brow
>>	
>>	
>>	&& (3) left join, with where
>>	select	c_id, ;
>>			ord_id ;
>>		from Customer ;
>>			left join Orders on (Ord_c_id = c_id) ;
>>		into cursor tmp3 ;
>>		where ( ord_id is null )
>>	
>>	brow
>>
>
>Fabio
Gregory
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform