如何在SQL中追加两个表并将结果放入一个表中?
结构化查询语言或 SQL 是一种标准的数据库语言,用于从 MySQL、Oracle、SQL Server、PostGre 等关系数据库中创建、维护和检索数据。在本文中,我们将学习如何附加两个表并存储使用 UNION, UNION ALL将结果放入一个新表中。
联盟:
句法:
SELECT column_one, column_two,..column_N INTO Table_name FROM table_name
UNION SELECT column_one,column_two,column_three,.. column_N FROM table_name;
联合所有:
句法:
SELECT column_one, column_two,column_three,.. column_N INTO Table_name FROM
table_name UNION SELECT column_one, column_two, column_three,..column_N
FROM table_name;
Union 和 Union All 的区别在于 UNION 不包括重复项,但 UNION ALL 也包括重复项。两者都以类似的语法使用。
考虑以下两个百货商店数据的表格
数据库:Shop1Item_Id Name Count 1 USB drive 10 2 pencil 11 3 candle 01 4 sharpie 19 5 model car 12 6 water bottle 20
用于创建表的命令
询问:
CREATE TABLE Shop1(Item_Id int,Name varchar(20),Count int)
输出:
数据库:Shop2Item_Id Name Count 1 nail file 11 2 rubber band 10 3 candle 01 4 pencil 10 5 model car 12 6 water bottle 12 7 bread 3 8 shoes 19 9 face wash 20
用于创建表的命令
询问:
CREATE TABLE Shop2(Item_Id int,Name varchar(20),Count int)
输出:
方法一:使用 UNION 关键字
为了连接两个表,即 Shop1 和 Shop2,我们运行以下命令:
询问:
SELECT * INTO joined FROM Shop1 UNION SELECT * FROM Shop2;
上述命令加入Shop1和SHOP2成加入了一个新的表,它是如下,并且可以由下面的命令来查看:
询问:
SELECT * FROM joined;
Item_Id | Name | Count |
---|---|---|
1 | USB drive | 10 |
1 | nail file | 11 |
2 | pencil | 11 |
2 | rubber band | 10 |
3 | candle | 1 |
4 | pencil | 10 |
4 | sharpie | 19 |
5 | model car | 12 |
6 | water bottle | 12 |
6 | water bottle | 20 |
7 | bread | 3 |
8 | shoes | 19 |
9 | face wash | 20 |
所以连接表不包含重复项,因为我们使用了 UNION 关键字
这是我们执行查询时的输出
输出:
方法 2:使用 UNION ALL 关键字
询问:
SELECT * INTO joined2 FROM Shop1 UNION ALL SELECT * FROM Shop2;
上面的命令创建了一个新的表,名称为 join2,其中包含 Shop1 和 Shop2 的所有值。
我们运行以下命令查看表
询问:
SELECT * FROM joined2;
Item_Id | Name | Count |
---|---|---|
1 | USB drive | 10 |
1 | nail file | 11 |
2 | pencil | 11 |
2 | rubber band | 10 |
3 | candle | 1 |
3 | candle | 1 |
4 | sharpie | 19 |
4 | pencil | 10 |
5 | model car | 12 |
5 | model car | 12 |
6 | water bottle | 20 |
6 | water bottle | 12 |
7 | bread | 3 |
8 | shoes | 19 |
9 | face wash | 20 |
这是我们执行查询时的输出。
输出: