2つのテーブルがあります
表1:
name| count
xxx | 1
yyyy | 2
zzzz | 3
表2:
name |count
xxx | 1
aaa | 5
結果のテーブルを次のテーブルのようにしたい:
name | count
xxx | 1
yyyy | 2
zzzz | 3
aaa | 5
誰でもこれを行う方法を知っていますか?
UNIONを使用する必要があります。
select * from table1
union
select * from table2
表1に挿入するには:
INSERT INTO TABLE1
select * from table2
where not exists(
select * from table1
where name=TABLE2.Name
and count=TABLE2.Count
)
特別なMERGE/UPSERTコマンドは必要ありません。
あるテーブルの行を別のテーブルにマージすること。
INSERT INTO table1
(SELECT * FROM table2
WHERE name NOT IN
(SELECT name FROM table1));
古いテーブルから新しいテーブルを作成するため。
CREATE TABLE new_table AS
(SELECT * FROM table1
UNION
SELECT * FROM table2);
これが開発者で機能しているかどうかを確認できますか、
MERGE INTO table1 x
USING table2 b
ON ( x.name=b.name and x.count=b.count)
WHEN NOT MATCHED THEN
INSERT (x.name,x.count)VALUES(b.name,b.count);