Php Sql插入组合值并选择失败

Php Sql插入组合值并选择失败,php,mysql,sql,insert,mysql-error-1242,Php,Mysql,Sql,Insert,Mysql Error 1242,我想插入两个值,一个由固定数字填充,另一个是来自另一个表的id 现在我发现了错误 1242-子查询返回超过1行 也许你可以帮我。尝试使用限制1: 插入表1 value1,value2 VALUES 6,从表2中选择id,其中name='Peter'限制1 这样,在嵌套查询中,从表2中选择id,其中name='Peter'LIMIT 1,它将只返回第一个匹配项,插入操作应该完成 请记住,如果您的目的是为表2中名为Peter的每一行插入新行,那么这将只插入第一行。如果您要为表2中名为Peter的每一

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

现在我发现了错误

1242-子查询返回超过1行

也许你可以帮我。

尝试使用限制1:

插入表1 value1,value2 VALUES 6,从表2中选择id,其中name='Peter'限制1

这样,在嵌套查询中,从表2中选择id,其中name='Peter'LIMIT 1,它将只返回第一个匹配项,插入操作应该完成


请记住,如果您的目的是为表2中名为Peter的每一行插入新行,那么这将只插入第一行。

如果您要为表2中名为Peter的每一条记录插入表1,这种方法应该有效

这个insert查询将把表2中名为Peter的所有记录插入表1。如果您只想插入一条记录,您可以使用LIMIT,正如Macmee在其回答中所解释的那样

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

桌子上有不止一个彼得吗?我会这样做:插入[table1][value1],[value2]从[table2]中选择6[id],其中[name]=“Peter”;您想为表2中的每个“Peter”在表1中插入一条记录,还是只插入一条记录,而不考虑表2中的“Peter”的数量?
insert into dbo.table1
(
     value1,
     value2
)(
     select 
          6,
          table2.id 
     from 
          table2
     where
          name = 'Peter'
)