如何将sql中的以下两个表绑定在一起,以使重复项不保留在结果表中?
表1为:
Table 1
-------
Col_1 | Col_2 |Stuff | Month
---------------------------
1 a qwe May
2 b sdf May
3 c ert May
4 d pol May
5 e lop May
这是表2
Table 2
-------
Col_1 | Col_2 | Stuff | Month
-----------------------------
4 d pol May
5 e lop May
7 f ghb June
8 g fes June
9 h lkl June
我要创建下表-称为表3-该表使用表1并将表2中未重复的行添加到表中(可以在顶部或底部)
表3-我想要实现的目标如下:
Table 3
-------
Col_1 | Col_2 |Stuff | Month
---------------------------
1 a qwe May
2 b sdf May
3 c ert May
4 d pol May
5 e lop May
7 f ghb June
8 g fes June
9 h lkl June
如何在SQL中执行此操作?我正在使用Micrsofot SQL Server Management Studio 2017
任何帮助表示赞赏
列始终保持不变
答案 0 :(得分:0)
您只是在寻找UNION
运算符,该运算符可从两个相同的查询(具有相同的列数和数据类型)中删除重复项:
SELECT col_1, col_2, stuff, month FROM table_1
UNION
SELECT col_1, col_2, stuff, month FROM table_2
ORDER BY col_1
根据样本结果进行排序。
如果您需要实现输出(将其存储在表中),可以使用SELECT ... INTO
子句进行如下操作:
SELECT col_1, col_2, stuff, month FROM table_1
INTO table_3
UNION
SELECT col_1, col_2, stuff, month FROM table_2
ORDER BY col_1
在第一条select语句之后仅需要INTO
部分,并且不需要派生表(子查询)即可工作。
现在,尽管这是可能的,但我仍会选择相同的输出,以期为将来的读者提供更清晰的意图,并使用这样的派生表:
SELECT *
INTO table_3
FROM (
SELECT col_1, col_2, stuff, month FROM table_1
UNION
SELECT col_1, col_2, stuff, month FROM table_2
ORDER BY col_1
) t
答案 1 :(得分:0)
您可以尝试:
select * into table3 from
(
select * from table1
union
select * from table2
) a
答案 2 :(得分:0)
从表1中选择* 联盟 从表2选择*