sql – 连接两个不同的表并删除重复的条目

我是sql查询的新手.我有两张桌子:

表格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

我想加入两个表,并删除具有相同名称和邮政编码的条目.我找到了一些关于如何做的答案但是它们太复杂了.

最佳答案
您可以使用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)

这将从table2插入与table1的名称,邮政编码不匹配的行

另一种方法是您也可以创建新表而不是触摸table1和table2

CREATE TABLE TABLENAME AS
SELECT * FROM table1
UNION
SELECT * FROM Table2

转载注明原文:sql – 连接两个不同的表并删除重复的条目 - 代码日志