繁体   English   中英

如何使用多个视图创建临时表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM