Maison >base de données >tutoriel mysql >Comment corriger l'erreur « La sous-requête renvoie plus d'une ligne » dans SQL ?
Lorsque vous travaillez avec des sous-requêtes, il n'est pas rare de rencontrer l'erreur frustrante « la sous-requête renvoie plus d'une ligne ». " Ce problème survient lorsqu'une sous-requête est censée renvoyer une seule valeur mais génère à la place plusieurs lignes. Pour résoudre cette erreur et exécuter correctement votre requête, il est crucial de comprendre l'utilisation appropriée des sous-requêtes.
Dans l'exemple donné, une sous-requête est utilisée pour renvoyer plusieurs lignes, qui sont ensuite référencées dans la requête principale pour définir le champ d'identification. Cependant, cette approche entraîne l'erreur susmentionnée car = ne peut évaluer qu'une sous-requête qui renvoie une seule valeur.
Pour résoudre ce problème, vous devez plutôt utiliser l'opérateur IN, qui est conçu pour évaluer les sous-requêtes qui renvoient plusieurs valeurs. En utilisant IN, vous pouvez spécifier que le champ id doit correspondre à l'une des valeurs renvoyées par la sous-requête.
Voici un exemple qui démontre l'utilisation correcte de IN :
SELECT * FROM table WHERE id IN (multiple row query);
Par exemple , si la sous-requête renvoie les valeurs 1, 2 et 3, le champ id sera défini sur 1 ou 2 ou 3, filtrant efficacement les résultats en fonction des multiples valeurs renvoyées par la sous-requête.
En utilisant IN, vous pouvez gérer efficacement les sous-requêtes qui renvoient plusieurs lignes, garantissant ainsi que votre requête s'exécute avec succès sans rencontrer l'erreur « La sous-requête renvoie plus d'une ligne ».
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!