2011-10-22 134 views
0

我將一個表中的所有記錄複製到另一個表中,該表中將有一個附加列來跟蹤複製過程。這個額外的列將來自其他表格。混淆的插入語句

我無法從這些現有的表中插入數據到新表中,並且需要您輸入那些人的信息。

(我不能一個新列添加到現有的表。我必須從它複製數據。)

回答

0

應該很簡單。如果在第二個舊錶中沒有任何匹配的行,我使用LEFT OUTER JOIN,這樣您就不會忽略第一個舊錶中的任何行。如果新列不可爲空,您可以調整選擇以提供默認值。新的表格應該事先創建。

INSERT INTO newtable (colA,colB,...,newCol) 
    (SELECT a.colA, a.colB,..., b.newCol 
    FROM oldtable1 a 
     LEFT OUTER JOIN oldtable2 b on a.colA = b.colA) 
+0

謝謝......但我的概率是我在舊錶中有230列。那麼,我必須如上所示鍵入它們? a.cola,a,colb,... a.col230 ????有沒有其他方式做到這一點? – user1008844

+0

您可以嘗試省略列說明符並執行一個'select a。*,b.newCol ...'插入的列數是正確的,並且按照相同的順序,它可能工作。不幸的是,我現在無法嘗試。 – tvanfosson

+0

非常感謝....我會試一試肯定.... – user1008844

0

我不確定您是否正在使用SQL Server或MySQL或其他類似的東西,但類似的東西應該可以工作。

INSERT INTO table_name (col1, col2, col_for_tracking_copy) 
SELECT col1, col2, 'some value' AS col_for_tracking_copy 
FROM table_name2 

你說額外的列將來自'其他表'。你可以再詳細一點嗎?如果您可以加入到其他表中,只需將其添加到上面的語句中,並刪除「某些值」。