将子查询中的多行插入表中
尝试使用返回多行的子查询将多行插入表中时,您可能会遇到错误 1242 (21000):子查询返回多于 1 行。出现此错误的原因是 MySQL 限制使用单个 INSERT 语句插入多行。
要解决此问题,请采用以下技术:
将要插入的静态行数据与子查询。例如,如果您希望将名称“Henry”插入到子查询返回的每一行的名为“names”的列中,请按如下所示修改查询:
INSERT INTO Results (People, names) SELECT d.id, 'Henry' FROM Names f JOIN People d ON d.id = f.id
在此修改后的查询中,静态值“Henry”与子查询组合。因此,子查询返回的每一行的“names”列都会填充值“Henry”。
以上是如何将子查询中的多行插入到 MySQL 的表中?的详细内容。更多信息请关注PHP中文网其他相关文章!