2

以下は MySQL テーブルです。テーブル A の ID 列からテーブル B の ID_A 列に値を挿入する必要があります。ID_A に既に存在する値は無視する必要があります。以下の例では、テーブル A の ID 1 ~ 3 を無視し、ID 4 ~ 10 をテーブル B に挿入する必要があります。ID_X の値は定数、つまり 3 です。

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

ここに画像の説明を入力

4

4 に答える 4

2

単純なオプションの 1 つは、 にまだ表示されていないレコードのみを左結合ABて挿入することです。AB

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
于 2016-05-31T10:30:54.003 に答える
1

unique indexon columnを作成してID_Aから、クエリを実行できます。

INSERT IGNORE INTO table_b
    SELECT      ID,
                3
        FROM    table_a;

これにより、欠落している行が追加されます。

于 2016-05-31T10:31:10.547 に答える
1
INSERT INTO TABLEB
(ID_A,ID_X)
SELECT
     ID,
     3
FROM TABLEA
WHERE ID NOT IN (SELECT ID_A FROM TABLEB)
于 2016-05-31T10:31:20.707 に答える