簡體   English   中英

將兩個表連接成一個大表

[英]join two tables into one big table

我有兩個具有相同列的表,我需要將一個表的行復制到另一個表的行,以創建一個包含兩個表中所有值的大表。 現在我正在執行此查詢以返回相同的內容:

SELECT col1, col2, col3 from Table1
union
SELECT col1, col2, col3 from Table2

但是,它看起來非常低效,而且我的系統非常慢(返回1210189條記錄)。

它可以做到:

SELECT col1, col2, col3 
INTO Table1
FROM Table2 

以union all開頭:

select col1, col2, col3 from Table1
union all
select col1, col2, col3 from Table2

您的查詢正在嘗試對事物進行重復數據刪除,這會大大減慢速度。

您可以使用它來填充第二個表:

Insert into table2 select * from table1;

或者如果你想更具體:

Insert into table2(col1, col2, col3) select col1, col2, col3 from table1;

(注意:某些DBMS可能需要在SELECT子句周圍加上括號。)

我認為最好的選擇是在sql server中創建一個視圖,這將優化查詢的性能:

SELECT col1, col2, col3 from Table1
union all
SELECT col1, col2, col3 from Table2

(正如其他用戶所說:“union”用於從兩個表中選擇不同的值,其中“union all”用於選擇所有值,包括表中的重復值。)

同時我會限制從數據庫中獲取的行數,如果我正在為Web編寫它們,如果這給我帶來了問題,那么使用Sql Server 2005 row_number()的新功能,我將頁面結果。

select * into new table(your new table name) 
from table1.col1,table1.col2,table2.col1;

這里的列可以是您需要的列。

select * into newtable from table1
union all
select * from table2

工作得很好。 指南,兩個表都有完全相同的列名:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM