Y a-t-il une limite dans un clause not in?
Résolu/Fermé
rjprod
Messages postés
19
Date d'inscription
mercredi 6 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2017
-
Modifié par jordane45 le 17/06/2015 à 10:30
rjprod Messages postés 19 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 28 septembre 2017 - 18 juin 2015 à 14:37
rjprod Messages postés 19 Date d'inscription mercredi 6 avril 2011 Statut Membre Dernière intervention 28 septembre 2017 - 18 juin 2015 à 14:37
A voir également:
- Y a-t-il une limite dans un clause not in?
- In da place - Forum Mail
- Deco in paris avis ✓ - Forum Consommation & Internet
- Navigation in private - Guide
- Comment enlever la limite d'ajout sur snapchat - Forum Snapchat
- Signal cable not connected ✓ - Forum Ecran
2 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
17 juin 2015 à 13:28
17 juin 2015 à 13:28
Bonjour,
Tu peux essayer avec ça je pense:
Sinon, encore mieux je pense, en utilisant une jointure du genre:
Tu peux essayer avec ça je pense:
SELECT champ1 FROM table1 WHERE champ1 NOT EXISTS (select champ1 from table2)
Sinon, encore mieux je pense, en utilisant une jointure du genre:
SELECT T1.champ1 FROM table1 T1 OUTER JOIN table2 T2 ON T2.id = T1.id
rjprod
Messages postés
19
Date d'inscription
mercredi 6 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2017
1
18 juin 2015 à 13:36
18 juin 2015 à 13:36
J'ai résolu le problème.
J'ai réduit le nombre d'argument dans le "not in" clause en cherchant la correspondance entre la table1 et table2 càd :
SELECT champ1
FROM table1
WHERE champ1 NOT IN (SELECT champ1 FROM table1 INNER JOIN table2 ON table1.champ1 = table2.champ1);
Ainsi, seul les enregistrements se trouvant à la fois dans la table1 et table2 seront balayé par le "not in" clause.
J'ai réduit le nombre d'argument dans le "not in" clause en cherchant la correspondance entre la table1 et table2 càd :
SELECT champ1
FROM table1
WHERE champ1 NOT IN (SELECT champ1 FROM table1 INNER JOIN table2 ON table1.champ1 = table2.champ1);
Ainsi, seul les enregistrements se trouvant à la fois dans la table1 et table2 seront balayé par le "not in" clause.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
18 juin 2015 à 13:56
18 juin 2015 à 13:56
Tu as testé avec le OUTER JOIN que je t'avais proposé ?
Car je pense que ça suffisait...
Car je pense que ça suffisait...
rjprod
Messages postés
19
Date d'inscription
mercredi 6 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2017
1
18 juin 2015 à 14:37
18 juin 2015 à 14:37
OUTER JOIN engendre un erreur de syntaxe sur MySQL.
Mais c'est grâce à tes propositions que j'ai pu résoudre le problème.
Merci jordane45
Mais c'est grâce à tes propositions que j'ai pu résoudre le problème.
Merci jordane45
Modifié par rjprod le 17/06/2015 à 15:31
Cependant, les synthaxes que tu propose ne fonctionne pas avec MySQL.
SELECT champ1
FROM table1
WHERE champ1 NOT EXISTS (select champ1 from table2)
s'écrit plutôt comme ceci :
SELECT champ1
FROM table1
WHERE NOT EXISTS (select champ1 from table2)
Mais dans ce cas si la sous-requête ne renvoie aucune ligne alors les enregistrements dans la table1 seront listés.