如何使用具有多个结果的子查询将值插入到表中?

我真的很感谢你的帮助。

也许这是一个很简单的问题要解决 – 但我不是一个.. 😉

我在SQL Server中有两个表:

  1. 文章
  2. 价格

现在我想select一组ID,并用这些ID在价格表中插入一些条目。

例如(错误和不工作的SQL)

INSERT INTO prices (group, id, price) VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50); 

SQL错误 – >子查询有多个值

感谢帮助

你要:

 insert into prices (group, id, price) select 7, articleId, 1.50 from article where name like 'ABC%'; 

在那里你只是硬编码恒定的领域。

尝试这个:

 INSERT INTO prices ( group, id, price ) SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'; 
 INSERT INTO prices (group, id, price) SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%' 

如果您将一条logging插入到表格中,则可以这样做

 INSERT INTO yourTable VALUES(value1, value2) 

但是既然你想插入多条logging,你可以在你的SQL语句中使用SELECT FROM

所以你会想这样做:

 INSERT INTO prices (group, id, price) SELECT 7, articleId, 1.50 from article WHERE name LIKE 'ABC%' 
 INSERT INTO prices(group, id, price) SELECT 7, articleId, 1.50 FROM article where name like 'ABC%'; 

子查询看起来像

  insert into table_name (col1,col2,....) values (select col1,col2,... FROM table_2 ...) 

希望这个帮助