Кажется, вы ищете MySQL s CREATE TABLE ... SELECT
Заявление :
create table mydistincttable as
select ... -- your actual query goes here
MySQL создает новую таблицу с одним столбцом для каждого столбца, возвращаемого вашим query (с эквивалентными типами данных) и заполняет его результатами запроса. Имена столбцов созданной таблицы следуют за именами, возвращаемыми запросом.
Как и следовало ожидать, созданная таблица не имеет индексов, ограничений и т.п. запрос. Если вам нужны такие функции, вам нужно добавить их вручную после создания таблицы.