Peut-on dire "SAUF" en SQL ?

nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008 - 9 août 2005 à 16:30
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008 - 10 août 2005 à 12:18
Bonjour,



J'aimerai savoir s'il y a possibilité de traduire un "SAUF" dans une requête SQL.



Je cherche en effet à sélectionner tous les enregistrements d'une
table, sauf ceux qui sont ressortis de la boucle WHILE de ma requête
précédente.



Plus concrètement :



$req_sauf = mysql_query("SELECT DISTINCT langues FROM app_mod WHERE notes <> 0");



while($recup_sauf = mysql_fetch_array($req_sauf)) {

$req_langues = mysql_query("SELECT id FROM toutes_langues WHERE id <> $recup_sauf(langues)");

echo $recup_langues = mysql_fetch_array($req_langues);

}



Voilà ce que j'ai tenté mais le problème, c'est que dans les premières
boucles, les résultats de req_sauf apparaissent quand même puisqu'à ce
moment là, l'id est bien différent.



Je vous remercie pour votre aide !



P.S. : les erreurs de crochets sont volontaires, je viens de passer sur MAC et je ne suis pas encore habitué.

9 réponses

arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 août 2005 à 16:47
SAUF est une sorte de WHERE...
Tu peux essayer de sélectionner les enr qui ne sont pas dans une list...

Mais surtout, tu ne pourais plutôt faire simplement et directement :
SELECT DISTINCT langues FROM app_mod WHERE notes = 0
?

Arn:oD
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 août 2005 à 17:00
WHERE NOT ?
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
9 août 2005 à 17:08
Merci pour vos réponses, je vais tester cela de suite.



Pour répondre à ta question Arnaud, j'ai tenté mais ma table est
composée d'une triple clé primaire, ce qui rend la chose un peu
spéciale... Impoossible de cette manière, hélas.
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
9 août 2005 à 17:11
Existe t'il un moyen de mettre les résultats à ne pas sélectionner en
mémoire, de sorte que dans ma seconde requête, je sélectionne tous les
enregistrements sauf ceux là ?



Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
9 août 2005 à 17:16
Il s'agit de subqueries avec l'utilisation de NOT IN (SELECT ...)

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
9 août 2005 à 17:53
Merci Grenard...



Je teste ça
0
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
9 août 2005 à 18:03
Attention, il faut mysql4.1

, EssayezTestez avant de Poser une question !
http://www.lookstrike.com
0
paulinett Messages postés 51 Date d'inscription lundi 1 août 2005 Statut Membre Dernière intervention 17 octobre 2005
10 août 2005 à 11:04
Tu peux essayer aussi SELECT.... FROM.... WHERE NOT EXISTS (SELECT....)
c'est une alternative à NOT IN.
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
10 août 2005 à 12:18
Merci merci...



J'adore ce forum et les gens qui s'y trouvent.



Merci encore pour votre participation, je teste cela aujourd'hui.
0
Rejoignez-nous