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

我真的很感激你的帮助。

也许这是一个相当简单的问题来解决-但我不是一个...)

我在 SQLServer 中有两个表:

  1. 文章
  2. 价格

现在我想选择一组特定的 ID,然后在 price-table 中插入一些具有这些 ID 的条目。

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

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

SQL Error-> 子查询有多个值

谢谢你的帮助

229808 次浏览

你想要:

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

硬编码常量字段。

如果要向表中插入一条记录,则可以执行

INSERT INTO yourTable
VALUES(value1, value2)

但是由于要插入多条记录,因此可以在 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 ...)

希望这个能帮上忙

试试这个:

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%';

我正在使用这种方法。

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