2015-10-30 79 views
1

我想從三個不同的表中插入一個表, 但下面的第一條語句有效,下一條不會。 我該怎麼辦?'insert into'from more source-tables

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

下一次,我不想 從 選擇*到NewT​​able SELECT *從td農場如'%aa' 顯示錯誤:NewTable已存在。 –

0

查詢select * into NewTable其實按SELECT查詢的結果產生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 選擇*到newtable中從 SELECT * FROM td農場如'%aa' 顯示錯誤:NewTable已存在。