web-dev-qa-db-ja.com

複数の結果を持つサブクエリを使用して、テーブルに値を挿入するにはどうすればよいですか?

本当にありがとうございました。

おそらくそれは解決するのは非常に簡単な問題ですが、私はそうではありません.. ;-)

SQL Serverには2つのテーブルがあります。

  1. 論文
  2. 価格

次に、特定のIDセットを選択し、それらのIDを使用して価格表にいくつかのエントリを挿入します。

例えば(誤ったSQLが機能しない)

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

SQLエラー->サブクエリに複数の値があります

手伝ってくれてありがとう

77
Futuretec

あなたが欲しい:

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

定数フィールドをハードコーディングするだけです。

126
Mike Ryan

これを試して:

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

1つのレコードをテーブルに挿入する場合、次のことができます。

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%'
12
Taryn
INSERT INTO prices (group, id, price)
  SELECT 7, articleId, 1.50 FROM article WHERE name LIKE 'ABC%'
12
Terkel

サブクエリは次のようになります

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

この助けを願っています

2
INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
1
Teja