You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用返回多行的子查询向company_details表插入数据?

解决多行子查询的INSERT问题

你的错误原因是:使用VALUES子句时,嵌套的子查询返回了多行结果,但VALUES搭配单个子查询表达式时只能处理单行数据,因此触发了Subquery returned more than 1 value的错误。

正确的写法是直接使用INSERT INTO ... SELECT ...语法,不需要VALUES子句,这样可以直接将子查询返回的多行数据批量插入,同时指定固定的detail_found值:

INSERT INTO company_details (company_id, detail_found)
SELECT company_id, 'No data found'
FROM company_list
WHERE company_id NOT IN (SELECT company_id FROM company_details);

更稳妥的写法(避免NULL值问题)

如果company_details表的company_id存在NULL值,NOT IN会返回异常结果,此时推荐使用NOT EXISTS替代:

INSERT INTO company_details (company_id, detail_found)
SELECT cl.company_id, 'No data found'
FROM company_list cl
WHERE NOT EXISTS (
    SELECT 1 
    FROM company_details cd 
    WHERE cd.company_id = cl.company_id
);

内容的提问来源于stack exchange,提问作者Sidath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 07:45:24