SQL Problème de In et not in

Fermé
Mamok - 23 juil. 2004 à 16:19
 ric - 23 juil. 2004 à 20:25
Bonjour,

Je voudrais savoir s'il est possible à l'aide d'une seule requete de faire la chose suivante:
Supposons un ensemble d'objets présents dans la table STOCK.
Famille 1 : famille du 04/03/2004
Famille 2 : famille du 05/03/2004

des éléments de la famille 1 peuvent etre présents dans la famille 2 aussi et inversement.
Je désire récupérer récupérer la famille 1 + les élements de la faille 2 qui ne sont pas présents dans 1.
exemple:
requete de base avec un ou sur la date 04/03 ou 05/03
résultat:
CODE|champ1|date
729|256|04/03/2004
729|545|05/03/2004
856|423|05/03/2004

J'aimerais avoir
729|256|04/03/2004
856|423|05/03/2004

Merci d'avance
Mamok

1 réponse

Bonsoir
Requete suivante OK en 0.0627 sec
SELECT t2.*
FROM user as t1, user as t2
WHERE (t1.date='04/03/2004'
AND t2.code=t1.code
AND t2.date=t1.date)
OR (t2.date='05/03/2004'
AND t2.code=t1.code
AND t2.date!=t1.date);

Requete suivante OK en 0.0572 sec
SELECT t2.*
FROM user as t1, user as t2
WHERE (t1.date='04/03/2004'
AND t2.code=t1.code
AND t2.date=t1.date)
OR (t2.date='05/03/2004'
AND t2.code=t1.code
AND t1.date='04/03/2004');

Requete suivante OK en 0.0040 sec
SELECT t2.*
FROM user as t1, user as t2
WHERE t1.date='04/03/2004'
AND t2.code=t1.code
AND (t2.date=t1.date
OR t2.date='05/03/2004');

La 3e est 15 fois plus rapide.
0