3

私はSQLクエリの初心者です。私は2つのテーブルを持っています:

表1:

id_s  name   post_code     city     subject
------------------------------------------
1     name1  postal1    city1    subject1
2     name2  postal2    city2    subject2
3     name3  postal3    city3    subject3
4     name4  postal4    city4    subject4
...
~350

テーブル 2:

id_p  name   post_code     city     subject
------------------------------------------
1     name1  postal1    city1    subject1
2     name2  postal2    city2    subject2
3     name3  postal3    city3    subject3
4     name4  postal4    city4    subject4 
...
~1200

両方のテーブルを結合し、同じ名前と郵便番号のエントリを削除したいと考えています。それを行う方法についていくつかの答えを見つけましたが、それらは複雑すぎました。

4

3 に答える 3

7

UNION句を使用できますUNION。重複をチェックし、個別の行のみが返されます

SELECT * FROM table1
UNION
SELECT * FROM Table2

編集:重複せずに両方のテーブルからデータを保存するには、これを行います

INSERT INTO TABLE1
SELECT * FROM TABLE2 A
WHERE NOT EXISTS (SELECT 1 FROM TABLE1 X 
                  WHERE A.NAME = X.NAME AND 
                  A.post_code = x.post_code)

これにより、table1 の名前、郵便番号と一致しない table2 の行が挿入されます。

別の方法として、table1 と table2 に触れずに、新しいテーブルを作成することもできます。

CREATE TABLE TABLENAME AS
SELECT * FROM table1
UNION
SELECT * FROM Table2
于 2013-01-13T12:46:09.270 に答える
1

SELECT INTO このようなコマンドを与えることができます

SELECT * INTO newtable FROM table1
UNION
SELECT * FROM table2;

これにより、重複することなく、table1 と table2 の両方から新しいテーブルが作成されます。

于 2013-01-13T13:01:27.263 に答える