2015-03-11 2 views
0

Я хочу создать временную таблицу с некоторым набором данных для выполнения более сложного запроса к mysql DB.Как создать вспомогательную таблицу в сжатом виде?

Я вижу два возможных способа сделать это.

создать таблицу и вставить каждую строку:

create temporary table dates (
    date date not null 
); 

insert into dates values ('2010-01-01'); 
insert into dates values ('2010-02-01'); 
insert into dates values ('2010-03-01'); 

или создать на месте таблицы:

select * 
from (
    select '2010-01-01' as date 
    union select '2010-02-01' as date 
    union select '2010-03-01' as date 
) as dates; 

Есть другие, более краткий способ сделать такую ​​таблицу?

ответ

0

Некоторым нравится создавать постоянные таблицы Aux, такие как последовательность чисел или дат, а затем просто ссылаться на них в своих запросах. Другие БД-системы позволяют рекурсивные КТЭ, которые являются более краткими.

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

Несмотря на немного глупое предложение, вашему предоставленному SQL не требуется «AS Date», кроме первого выбора производной таблицы, и вы должны использовать UNION ALL вместо UNION.

Смежные вопросы