我正在将所有记录从一个表复制到另一个表,该表将有一个额外的列来跟踪复制过程。这个附加列将来自其他一些表。
我无法从这些现有表格中将数据插入到新表格中,并且需要您在此处输入数据。
(我无法在现有表中添加一个新列。我必须从中复制数据。)
答案 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”。