繁体   English   中英

SQL INSERT INTO结合值和选择失败

[英]Sql INSERT INTO combining value and select failure

我想插入两个值,一个由固定数字填充,另一个是另一个表的ID。

现在我得到了错误

#1242-子查询返回的行数超过1。

INSERT INTO table1 (value1, value2) VALUES 
(6 , (SELECT id FROM table2 WHERE name = 'Peter'))

也许你可以帮我。

如果要为table2中名称为Peter的每个记录插入记录到table1中,则此方法应该有效。

此插入查询将表2中名称为“ Peter”的所有记录插入表1中。 如果您只想插入一条记录,则可以使用LIMIT如Macmee在其回答中所述

insert into dbo.table1
(
     value1,
     value2
)(
     select 
          6,
          table2.id 
     from 
          table2
     where
          name = 'Peter'
)

尝试使用LIMIT 1

INSERT INTO table1 (value1, value2) VALUES (6 , (SELECT id FROM table2 WHERE name = 'Peter' LIMIT 1))

这样,在嵌套查询中(SELECT id FROM table2 WHERE name = 'Peter' LIMIT 1) ,它将仅返回第一个匹配项,并且插入应通过。

请记住,如果您打算为table2中名为“ Peter”的每一行插入新行,则只会插入第一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM