我是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
我想加入两个表,并删除具有相同名称和邮政编码的条目。我找到了一些关于如何做的答案,但它们太复杂了。
答案 0 :(得分: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)
这将从table2插入与table1
中的名称,邮政编码不匹配的行替代方案是您也可以创建新表而不是触摸table1和table2
CREATE TABLE TABLENAME AS
SELECT * FROM table1
UNION
SELECT * FROM Table2
答案 1 :(得分:1)
您可以像这样提供SELECT INTO
命令
SELECT * INTO newtable FROM table1
UNION
SELECT * FROM table2;
这将从table1和table2创建一个newtable,没有任何重复
答案 2 :(得分:0)
试试这个简单的:
(select * from table1 MINUS select * from table2)
UNION
(select * from table2 MINUS select * from table1)