当子查询返回多于一行时,如何将子查询中的多行插入到 MySQL 表中?

Patricia Arquette
发布: 2024-11-02 15:08:29
原创
143 人浏览过

How to Insert Multiple Rows from a Subquery into a MySQL Table When the Subquery Returns More Than One Row?

将子查询中的多行插入到 MySQL 表中

要将子查询中的多行插入到 MySQL 表中,至关重要的是要确保子查询仅返回一行。在提供的代码片段中,插入查询:

INSERT INTO Results (People, names)
VALUES
(
 (SELECT d.id FROM Names f JOIN People d ON d.id = f.id),
 ("Henry"),
);
登录后复制

尝试将两个值插入到“人员”和“名称”列中。但是,第一个括号内的子查询返回 d.id 的多行。这会导致错误“子查询返回超过 1 行。”

使用组合静态字符串的解决方案

插入静态字符串“Henry”,同时保留以下结果子查询,按如下方式修改查询:

INSERT INTO Results (People, names)
SELECT d.id, 'Henry'
FROM Names f
JOIN People d ON d.id = f.id
登录后复制

通过使用逗号将静态字符串“Henry”与子查询组合,查询将每行的名称列的值显式设置为“Henry”由子查询返回。这可确保查询将子查询的结果与指定值一起插入表中,而不会遇到错误。

以上是当子查询返回多于一行时,如何将子查询中的多行插入到 MySQL 表中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!