首页 > 解决方案 > SELECT 返回多个值的 INSERT 引发错误“子查询返回超过 1 个值”

问题描述

尝试在表中插入多个值(与 SELECT 结果中的 ID 一样多),但 select Id 查询返回超过 1 个值(预期),因此出现错误。

INSERT INTO table1 (UserId, Date, ...)
VALUES
((SELECT Id from table2 WHERE ClientId = 26), GETDATE(), ...)

什么是最好的方法?

标签: sql

解决方案


我不确定你的列是如何排列的。看起来GETDATE()正在插入Name. 但如果这是你需要的,那这个呢?你可以只做一个INSERT SELECT没有VALUES.

INSERT INTO table1 (UserId, Name, ...)
SELECT Id, GETDATE(), ...
from table2 
WHERE ClientId = 26

推荐阅读