2016-05-31 9 views
2

以下はMySQLテーブルです。テーブルAのID列からテーブルBのID_A列に値を挿入する必要があります。すでに存在していたID_Aの値は無視する必要があります。以下の例では、表AのID 1〜3を無視し、ID 4〜10を表Bに挿入する必要があります。ID_Xの値は定数3です。クエリを別のテーブルに依存する

単一の挿入SQLクエリは何ですか?

enter image description here

答えて

2

一つの簡単なオプションは、BAに参加し、すでにBには表示されませんAからのレコードだけを挿入左にあります。

INSERT INTO B (ID_A, ID_X) 
SELECT A.ID, 3 
FROM A LEFT JOIN B 
    ON A.ID = B.ID_A 
WHERE B.ID_A IS NULL 
0

あなたは列ID_Aunique indexを作成し、クエリを実行できます。

INSERT IGNORE INTO table_b 
    SELECT  ID, 
       3 
     FROM table_a; 

これが欠落している行を追加する必要があります。

0
INSERT INTO TABLEB 
(ID_A,ID_X) 
SELECT 
    ID, 
    3 
FROM TABLEA 
WHERE ID NOT IN (SELECT ID_A FROM TABLEB) 
+0

このコードは_why_に関する 追加のコンテキストを提供し、質問に答える、および/またはそれが 質問が大幅に長期的 値を改善する回答_how_かもしれないが。あなたの答えを[編集]して、説明を加えてください。 –

0

これを試してみてください;)

insert into tableb (id_a, id_x) 
select a.id as id_a, 3 as id_x from tablea a join tableb b on b.id_a <> a.id 
関連する問題