Maison > base de données > tutoriel mysql > Pourquoi ma requête MySQL « NOT IN » échoue-t-elle et comment puis-je y remédier ?

Pourquoi ma requête MySQL « NOT IN » échoue-t-elle et comment puis-je y remédier ?

Linda Hamilton
Libérer: 2025-01-13 14:12:43
original
174 Les gens l'ont consulté

Why is My MySQL

Dépannage d'une erreur de requête MySQL "NOT IN"

Un utilisateur a récemment rencontré une erreur de syntaxe en tentant une requête MySQL apparemment simple. L'objectif était de sélectionner toutes les lignes de Table1 où la valeur de la colonne principal n'est pas présente dans Table2. La requête initiale incorrecte était :

SELECT * FROM Table1 WHERE Table1.principal NOT IN Table2.principal
Copier après la connexion

Cela a généré une erreur, amenant l'utilisateur à croire que MySQL pourrait ne pas prendre en charge les clauses NOT IN, sur la base de conseils en ligne contradictoires. Certaines sources ont suggéré des solutions de contournement complexes.

Cependant, MySQL supporte NOT IN, mais la syntaxe utilisée ci-dessus était défectueuse. La syntaxe correcte nécessite une sous-requête :

SELECT * FROM Table1 WHERE Table1.principal NOT IN (SELECT principal FROM Table2)
Copier après la connexion

Cette requête révisée utilise une sous-requête (SELECT principal FROM Table2) pour définir explicitement l'ensemble de valeurs principal de Table2. MySQL compare ensuite correctement chaque Table1.principal valeur à cet ensemble, renvoyant uniquement les lignes pour lesquelles une correspondance n'est pas trouvée.

L'erreur d'origine provenait uniquement d'une application incorrecte de l'opérateur NOT IN. L'inclusion de la sous-requête fournit la structure nécessaire pour que la base de données exécute la requête avec succès et produise 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal