Insertion de plusieurs lignes à partir de sous-requêtes dans des tables
Lorsque vous tentez d'insérer plusieurs lignes dans une table à l'aide d'une sous-requête qui renvoie plusieurs lignes, vous pouvez rencontrer l'erreur 1242 (21000) : la sous-requête renvoie plus d'une ligne. Cette erreur est due à la contrainte de MySQL concernant l'insertion de plusieurs lignes à l'aide d'une seule instruction INSERT.
Pour résoudre ce problème, utilisez la technique suivante :
Combinez les données de ligne statiques que vous souhaitez insérer avec la sous-requête. Par exemple, si vous souhaitez insérer le nom "Henry" dans une colonne nommée "names" pour chaque ligne renvoyée par la sous-requête, modifiez la requête comme suit :
INSERT INTO Results (People, names) SELECT d.id, 'Henry' FROM Names f JOIN People d ON d.id = f.id
Dans cette requête modifiée, le static la valeur 'Henry' est combinée avec la sous-requête. En conséquence, chaque ligne renvoyée par la sous-requête aura la colonne « noms » renseignée avec la valeur « Henry ».
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!