table_a と table_b の 2 つの SQL テーブルがある場合、どちらも同じですが、異なるデータが含まれている場合があります。table_a にまだ存在しない table_b のすべての行を table_b に挿入したいのですが、クエリはどのようになりますか? テーブルには id1 列と id2 列のみが含まれます。私の質問が明確でない場合は教えてください
Insert into table_a ...
ありがとうございました
table_a と table_b の 2 つの SQL テーブルがある場合、どちらも同じですが、異なるデータが含まれている場合があります。table_a にまだ存在しない table_b のすべての行を table_b に挿入したいのですが、クエリはどのようになりますか? テーブルには id1 列と id2 列のみが含まれます。私の質問が明確でない場合は教えてください
Insert into table_a ...
ありがとうございました
クエリで not exist を使用できます。
insert into table_a(id1,id2)
select id1,id2
from table_b
where not exists(select id1,id2 from table_a)
; with cte_left as
(
select id1+id2
from table_a
where id1+id2 not in (select id1+id2 from table_b)
)
insert into table_b
select * from cte_left
Insert into table_a ( id1, id2 )
select b.id1, b.id2
from table_b b
left outer join table_a a on a.id1 = b.id1 and a.id2 = b.id2
where a.id1 is null
EXCEPT
次の演算子を使用できます。
INSERT INTO table_a (id1, id2)
SELECT id1, id2
FROM (
SELECT id1, id2
FROM table_b
EXCEPT
SELECT id1, id2
FROM table_a
) except_gry
SQL Fiddle のデモはこちら