Y a-t-il une limite dans un clause not in?
Résolu
rjprod
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
rjprod Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
rjprod Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fais une requête :
De visu, je constate qu'il y a des enregistrements qui se trouve dans la table1 et qui ne sont pas dans la table2. Mais l'exécution de la requête ne donne pas ce résultat.
Dans la table2 il y a 11350 enregistrements. Donc y a t il un nombre limite d'arguments dans un "not in" clause?
J'ai fais une requête :
select champ1 from table1 where champ1 not in (select champ1 from table2).
De visu, je constate qu'il y a des enregistrements qui se trouve dans la table1 et qui ne sont pas dans la table2. Mais l'exécution de la requête ne donne pas ce résultat.
Dans la table2 il y a 11350 enregistrements. Donc y a t il un nombre limite d'arguments dans un "not in" clause?
A voir également:
- Y a-t-il une limite dans un clause not in?
- Navigation in private - Guide
- Family link limite quotidienne ne fonctionne pas - Forum Contrôle parental
- Vous avez atteint votre limite de demandes d'ami(e)s pour le moment. réessayez dans quelques jours - Forum Snapchat
- En préparant son diaporama, tom a pris quelques notes qui l'aideront lors de sa présentation. quand il présentera l'âne, il a prévu de raconter une anecdote sur cet animal. comment s'appelle l'âne de son histoire ? - Forum Windows
- Dc in - Forum Disque dur / SSD
2 réponses
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
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.
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.