Как создать временную таблицу, используя несколько представлений - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь создать временную таблицу, используя пять разных представлений, каждое из которых имеет одинаковые имена столбцов, но разные значения.

Я использую 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 для этого?

Ответы [ 2 ]

4 голосов
/ 25 июня 2019

Попробуйте следующее, так как все представления имеют одинаковое количество столбцов

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`
0 голосов
/ 25 июня 2019

UNION может помочь вам объединить все данные таблиц в одну таблицу.
Нравится:

CREATE TEMPORARY TABLE IF NOT EXISTS tableTemp AS (SELECT * FROM table1 UNION SELECT * FROM table2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...