0

あるテーブルから別のテーブルにすべてのレコードをコピーしています。このテーブルには、コピー プロセスを追跡するための追加の列が 1 つあります。この追加の列は、他のテーブルから取得されます。

これらの既存のテーブルから新しいテーブルにデータを挿入することができず、そこに人々の意見が必要です。

(既存のテーブルに新しい列を 1 つ追加することはできません。そこからデータをコピーする必要があります。)

4

2 に答える 2

0

かなり単純なはずです。2 番目の古いテーブルに一致する行がない場合に、最初の古いテーブルから行を省略しないように、LEFT OUTER JOIN を使用しています。新しい列が null 可能でない場合は、選択を調整して既定値を提供できます。新しいテーブルは事前に作成する必要があります。

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) 
于 2011-10-22T19:04:53.273 に答える
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

追加の列は「他のテーブル」からのものだとおっしゃいました。もっと具体的に教えていただけますか?この他のテーブルに結合できる場合は、それを上記のステートメントに追加して、「何らかの値」を削除してください。

于 2011-10-22T19:20:16.683 に答える