以下は MySQL テーブルです。テーブル A の ID 列からテーブル B の ID_A 列に値を挿入する必要があります。ID_A に既に存在する値は無視する必要があります。以下の例では、テーブル A の ID 1 ~ 3 を無視し、ID 4 ~ 10 をテーブル B に挿入する必要があります。ID_X の値は定数、つまり 3 です。
単一の挿入 SQL クエリとは何ですか?
以下は MySQL テーブルです。テーブル A の ID 列からテーブル B の ID_A 列に値を挿入する必要があります。ID_A に既に存在する値は無視する必要があります。以下の例では、テーブル A の ID 1 ~ 3 を無視し、ID 4 ~ 10 をテーブル B に挿入する必要があります。ID_X の値は定数、つまり 3 です。
単一の挿入 SQL クエリとは何ですか?
単純なオプションの 1 つは、 にまだ表示されていないレコードのみを左結合A
しB
て挿入することです。A
B
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
unique index
on columnを作成してID_A
から、クエリを実行できます。
INSERT IGNORE INTO table_b
SELECT ID,
3
FROM table_a;
これにより、欠落している行が追加されます。
INSERT INTO TABLEB
(ID_A,ID_X)
SELECT
ID,
3
FROM TABLEA
WHERE ID NOT IN (SELECT ID_A FROM TABLEB)