Maison >base de données >tutoriel mysql >Comment insérer correctement plusieurs valeurs dans un tableau à l'aide d'une sous-requête ?

Comment insérer correctement plusieurs valeurs dans un tableau à l'aide d'une sous-requête ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 20:11:44432parcourir

How to Correctly Insert Multiple Values into a Table Using a Subquery?

Insérer des valeurs dans une table à l'aide d'une sous-requête

Insérer des valeurs dans une table à l'aide d'une sous-requête avec plusieurs résultats peut être difficile. Considérons le scénario dans lequel vous disposez de deux tables, article et prix, et que vous souhaitez insérer des entrées dans les prix en fonction d'identifiants spécifiques obtenus à partir de l'article.

Une approche courante, qui conduit souvent à des erreurs SQL, consiste à utiliser un sous-requête dans la clause VALUES :

INSERT INTO prices (group, id, price) 
VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);

Cette requête entraînera une erreur car la sous-requête renvoie plusieurs résultats.

L'approche correcte consiste à utilisez l'instruction select dans la requête INSERT et codez en dur les champs constants :

insert into prices (group, id, price)
select 
    7, articleId, 1.50
from article where name like 'ABC%';

En séparant les champs constants de la sous-requête, vous pouvez vous assurer qu'une seule ligne est insérée pour chaque résultat de la sous-requête.

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:
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