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


96

よろしくお願いします。

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

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エラー->サブクエリに複数の値があります

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


5
うわー!多くの正解はすべて'13年12月13日21:18に行われます(ヒント:タイムスタンプに
カーソルを合わせると

回答:


148

あなたが欲しい:

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

ここでは、定数フィールドをハードコードします。


INSERT INTO iden_course(Cse_M_ID、 、、Cse_M_Name 、Cse_M_CreatedDate)VALUES( 'ID'、 'BJF'、 'BJfg'、 '4'、NOW())(Cse_M_ID)を最大選択IDとしてiden_courseからこのクエリに追加する方法はCse_M_ShNameCse_M_TotSem
サンディープ

23

これを試して:

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

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

12

テーブルに1つのレコードを挿入する場合は、

INSERT INTO yourTable 
VALUES(value1, value2)

ただし、複数のレコードを挿入したいのでSELECT FROM、SQLステートメントでa を使用できます。

だからあなたはこれをしたいでしょう:

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

3

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

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

この助けを願っています


1
INSERT INTO prices(group, id, price)
SELECT 7, articleId, 1.50
FROM article where name like 'ABC%';
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.