2016-07-21 31 views
0

テーブル2とテーブル1とテーブル2が2つあり、それぞれテーブル2 = 2m行とテーブル2 = 1m行が追加されており、 TABLE1、およびTABLE1が、私は、このコマンドを実行してください一意の値sql - テーブル2からテーブル1に挿入する方法重複値を挿入しない

を持っている:

INSERT INTO table1 (top1, top2, top3) 
    SELECT top1, top2, top3 FROM table2 

TOP1は、表2のTOP1は、次合格するTABLE1のTOP1にすでにあるので、もし私が選択を行うことができますどのように、ユニークな値はありますか?

+0

PK、ちょうどTOP1またはTOP1 + TOP2 + TOP3 – Maulzey

答えて

2

これを行うにはいくつかの方法がありますが、いくつかの異なるデータベースが簡単な方法を提供します。

INSERT INTO table1 (top1, top2, top3) 
SELECT top1, top2, top3 FROM table2 t2 
WHERE NOT EXISTS (
    select 1 
    from table1 t1 
    where t1.top1 = t2.top1) 

outer joinnull \チェックのもう一つの一般的なオプション:ここでnot existsとの一般的なソリューションです

insert into table1 (top1, top2, top3) 
select t2.top1, t2.top2, t2.top3 
from table2 t2 
    left join table1 t1 on t2.top1 = t1.top1 
where t1.top1 is null 
+0

これは何が何をされるI検索していた、ありがとう! –

関連する問題