複数の値のためにINSERT INTOとSELECTを組み合わせます

AugSB:

私は、テーブルに複数の新しい行を挿入するための最も一般的な方法であることを知っています:

INSERT INTO fruits (fruit, colorId)
VALUES ('apple', 1),
       ('orange', 2),
       ('strawberry', 3);

私も、私もカスタム値を使用して、SELECTから得られた結果を挿入することができることを知っています:

INSERT INTO fruits (fruit, colorId)
SELECT 'pear', id
FROM colors
WHERE color = 'green';

事は、私は、このようなAクエリで得られた結果を用いて、複数の値を挿入したいと思います(私は知らないかもしれないか、別の1、)これらのオプションのいずれかを使用して、それです。例えば:

SELECT id
FROM colors
WHERE color = 'yellow';

単一の値を返すことになる4(のID yellowIが複数のインサートクエリなどに再利用したいです)

INSERT INTO fruits (fruit, colorId)
VALUES ('banana', id),
       ('lemon', id);

(ここでidなければなりません4)。出来ますか?


編集:ところで、私はまた、のようなのようなサブクエリを使用しないようにするでしょう

INSERT INTO fruits (fruit, colorId)
VALUES ('banana', (SELECT id FROM colors WHERE color = 'yellow')),
       ('lemon',  (SELECT id FROM colors WHERE color = 'yellow'));
vijesh:

ところで、あなたは以下のようにそれを行うことができます。

DECLARE @Id INT
SET @Id = (SELECT id FROM colors WHERE color = 'yellow')
INSERT INTO fruits (fruit, colorId)
VALUES ('banana', @Id),
   ('lemon',  @Id);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25899&siteId=1