Requete imbrique <> all [Résolu]

Signaler
Messages postés
38
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
24 juin 2008
-
Messages postés
38
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
24 juin 2008
-
Bonjour,

Je voudrais selectioner toute les personne ne faisait pas partie d'une liste retourne par une requete (le contraire de IN en sorte toutes les personne qui ne sont PAS dans la liste.
J'ai fait cette requette :

"SELECT * FROM Personnes WHERE clef <> ALL (SELECT distinct clef_personne FROM carriere WHERE Profession <> 12 ) ) "



ca marche mais c'est extremement long y'at il un autre moyen de proceder.
A voir également:

5 réponses

Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
est ce que ta requete ne devrait pas plutot te retourner toutes les personnes dont la profession est =12
etant donné que tu ne souhaites pas ceux dont la profession est <> 12

donc tu pourrais essayer cela
select * from personnes
inner join carriere on personnes.cle = carriere.clef_personne
where profession = 12

ceci implique que toutes les personnes sont présentes dans carriere.

Ai je bien compris le besoin ? ou alors il me manque des infos

Pat

 Don't Worry , Be Happy
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
salut
essaie NOT IN
"SELECT * FROM Personnes WHERE  clef  NOT IN (SELECT distinct clef_personne FROM carriere WHERE    Profession <> 12 )  ) "

Pat

 Don't Worry , Be Happy
Messages postés
38
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
24 juin 2008

deja fait NOT IN c'est encore plus long :/
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
surprenant que cela soit si long...
tu as combien d'enreg ?
tu as des index sur tes tables ?
si ce n'est pas le cas, je pense que tu devrais indexer les champs cle, Clef_Personne et Profession ...

Pat

 Don't Worry , Be Happy
Messages postés
38
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
24 juin 2008

j'ai fait une erreur de frappe ma requete est :

"SELECT * FROM Personnes WHERE clef <> ALL (SELECT distinct clef_personne FROM carriere WHERE Profession = 12 ) ) "