[英]How to create temporary table using multiple views
我正在尝试使用五个不同的视图创建一个临时表,每个视图具有相同的列名但值不同。
我正在使用MySQL5。 到目前为止,我已经尝试运行以下命令:
CREATE TEMPORARY TABLE `temp`
SELECT *
FROM `first_view`, `second_view`, `third_view`, `fourth_view`, `fifth_view`
但是然后我收到一条错误消息,告诉我Name
列已重复。 更改为:
CREATE TEMPORARY TABLE `temp`
SELECT `first_view`.Name AS Test
FROM `first_view`, `second_view`, `third_view`, `fourth_view`, `fifth_view`
只需使用“ Name
列创建一个临时表即可。
为了简要说明我的意思,这里是视图的结构:
View `first_view`:
---------------------
| Name | Qty |
---------------------
| data1 | 494 |
---------------------
View `second_view`:
---------------------
| Name | Qty |
---------------------
| data2 | 78 |
---------------------
View `third_view`:
---------------------
| Name | Qty |
---------------------
| data3 | 12 |
---------------------
View `fourth_view`:
---------------------
| Name | Qty |
---------------------
| data4 | 752 |
---------------------
View `fifth_view`:
---------------------
| Name | Qty |
---------------------
| data5 | 909 |
---------------------
我想要实现的是具有以下结构的临时表:
Temporary table `temp`:
---------------------
| Name | Qty |
---------------------
| data1 | 494 |
| data2 | 78 |
| data3 | 12 |
| data4 | 752 |
| data5 | 909 |
---------------------
有没有办法做到这一点? 如果是这样,SQL语句应如何执行此操作?
请尝试以下操作,因为所有视图的列数均相同
CREATE TEMPORARY TABLE `temp`
SELECT * FROM `first_view` UNION ALL
SELECT * FROM `second_view` UNION ALL
SELECT * FROM `third_view` UNION ALL
SELECT * FROM `fourth_view` UNION ALL
SELECT * FROM `fifth_view`
UNION
可以帮助您将所有表数据合并到一个表中。
喜欢:
CREATE TEMPORARY TABLE IF NOT EXISTS tableTemp AS (SELECT * FROM table1 UNION SELECT * FROM table2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.