1

私は3つのテーブルを持っています。最初の2つのテーブルには類似したデータがありますが、それらは異なるソースからのものであり、同じ量の列はありません。3番目のテーブルを使用して、他の2つのテーブルからデータを収集しています。データの元となったテーブルの名前を持つ3番目のテーブルの列が欲しいのですが。

例:table_1には、次のデータが次の順序で含まれています。

(ID、data_1、data_2、data_3、data_4、data_5)

table_2には、次のデータが次の順序で含まれています。

(ID、data_3、data_1、data_5、data_2、data_4、data_6、data_7)

両方のテーブルから必要なデータを収集します。table_3にはtable_1と同じ数の列があります。

table_1から最初

INSERT INTO table_3
SELECT * FROM table_1

次にtable_2から

INSERT INTO table_3
SELECT ID, data_1, data_2, data_3, data_4, data_5
FROM table_2

これは機能していて、問題はありません。table_3に列を作成したいのですが、データが取得されたテーブルの名前を保持しています。どうすればいいのかわかりません。table_3に別の列を追加したので、col_6が追加され、その列を手動で更新できると思いましたが、機能していません。これが私が試したものです。

UPDATE table_3
SET col_6 = 'table_1'
WHERE table_3.col_1 = table_1.col_1

UPDATE table_3
SET col_6 = 'table_2'
WHERE table_3.col_1 = table_2.col_1

これに関するどんな助けも素晴らしいでしょう、ありがとう。

4

2 に答える 2

3

私の知る限り、これを自動的に行う方法はありません

しかし、次のようなことができます:

    insert into table_3
    select t.*, 'table_1'
    from table_1

ただし、更新ステートメントで Column_1 が何を表しているかはわかりません。

于 2012-10-18T17:47:29.810 に答える
0

クレジットはuser194076に送られるはずですが、より完全な答えは次のとおりです。

table_1から最初

INSERT INTO table_3
SELECT *, 'table_1' FROM table_1

次にtable_2から

INSERT INTO table_3
SELECT ID, data_1, data_2, data_3, data_4, data_5, 'table_2'
FROM table_2
于 2012-10-18T17:52:27.890 に答える