INSÉRER plusieurs lignes avec une sous-requête dans MySQL
Vous recherchez une solution pour remplir une table avec plusieurs lignes renvoyées par une sous-requête. L'exemple de requête que vous avez fourni tente d'y parvenir à l'aide d'une clause VALUES imbriquée, mais elle entraîne une erreur car la sous-requête renvoie plusieurs lignes.
Résolution de l'erreur
Pour surmonter ce problème, vous devez éviter d'imbriquer la sous-requête dans la clause VALUES. Au lieu de cela, combinez la sous-requête avec une valeur statique pour le nom en utilisant l'approche suivante :
INSERT INTO Results (People, names) SELECT d.id, 'Henry' FROM Names f JOIN People d ON d.id = f.id
Cette requête renverra plusieurs lignes avec l'identifiant de la sous-requête combiné avec la chaîne statique « Henry » pour la colonne de nom. .
Explication
En combinant la sous-requête et la valeur statique dans la clause SELECT, vous créez effectivement une seule ligne pour chaque ligne renvoyée par la sous-requête. Cela permet à l'instruction INSERT d'ajouter avec succès ces lignes à la table Résultats.
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!