Opérateur NOT IN
de MySQL : éviter les erreurs de syntaxe lors de la sélection de lignes distinctes
De nombreux utilisateurs rencontrent des erreurs de syntaxe lorsqu'ils utilisent l'opérateur NOT IN
de MySQL pour récupérer des lignes où une valeur de colonne n'est pas trouvée dans une autre table. Bien que MySQL prise en charge NOT IN
, la syntaxe est cruciale.
La requête :
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal</code>
est incorrect et produira une erreur de syntaxe. La syntaxe correcte nécessite une sous-requête :
<code class="language-sql">SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)</code>
En utilisant des parenthèses pour délimiter (SELECT principal FROM Table2)
, vous créez une sous-requête. MySQL interprète alors correctement cela comme un ensemble de valeurs à comparer à Table1.principal
. Cette requête révisée renvoie efficacement toutes les lignes de Table1
où la valeur principal
est absente des résultats de la sous-requête. Cela résout l'erreur de syntaxe et fournit les résultats attendus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!