困惑的插入语句

时间:2011-10-22 18:55:30

标签: insert insert-into

我正在将所有记录从一个表复制到另一个表,该表将有一个额外的列来跟踪复制过程。这个附加列将来自其他一些表。

我无法从这些现有表格中将数据插入到新表格中,并且需要您在此处输入数据。

(我无法在现有表中添加一个新列。我必须从中复制数据。)

2 个答案:

答案 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) 

答案 1 :(得分: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

你说附加列来自'其他一些表'。你可以再详细一点吗?如果你可以加入另一个表,只需将其添加到上面的语句中并删除“some value”。