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!