2015-10-30 3 views
1

Я хотел был бы вставить в одну таблицу из трех разных таблиц, , но нижеследующее описание ниже работает, а следующее - нет. Что мне делать?«Вставить в» из большего количества исходных столов

SELECT * into NewTable from ta where farm like'%aa'; 
SELECT * into NewTable from tb where farm like'%aa'; 
SELECT * into NewTable from tc where farm like'%aa'; 

ответ

0

попробовать этот способ

select * into NewTable from (
SELECT * from ta where farm like'%aa' 
Union all 
SELECT * from tb where farm like'%aa' 
Union all 
SELECT * from tc where farm like'%aa' 
)a; 
+0

В следующий раз, я wan't выберите * в NewTable из SELECT * from td, где ферма вроде '% aa' show error: NewTable уже существует. –

0

Запрос select * into NewTable фактически создает что NewTable по результатам запроса на выборку, а затем вставить эти результаты.

Так что для того, чтобы вставить в таблицу существовавшего после первого запроса, изменение второго и третьего из них в

insert into NewTable 
select * from tb ... 

insert into NewTable 
select * from tc ... 

Обратите внимание - все таблицы в этом случае должны имеет ту же структуру.

+0

Извините, я хочу поместить данные в один NewTable. –

+1

Что это значит? Опять же, первый запрос создает таблицу и заполняет ее данными. Второй и третий добавляют свои данные к тому же «NewTable», созданному первым запросом. –

+0

он не работает. –

0

Вместо трех вставок лучше сделать одну и UNION результаты:

SELECT * into NewTable 
from ta 
where farm like'%aa' 

UNION ALL 

SELECT * 
from tb 
where farm like'%aa' 

UNION ALL 

SELECT * 
from tc 
where farm like'%aa'; 
0

В следующий раз, я wan't выберите * в Новая_таблица из SELECT * из td, где ферма, подобная '% aa' , показывает ошибку: NewTable уже существует.

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