2012-10-18 58 views
1

我有三個表。前兩個表具有類似的數據,但它們來自不同的來源,並且它們沒有相同數量的列。我使用第三個表從另外兩個表中收集數據。我希望第三個表中具有數據來自表的名稱的列。將表名插入列

示例: table_1按以下順序包含以下數據。

(ID,數據1,數據,data_3,data_4,data_5)

TABLE_2包含以下順序的下列數據。

(ID,data_3,_1,data_5,_2,data_4,data_6,data_7)

我聚集I兩個表所需要的數據,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 

任何幫助,這將是偉大的,謝謝。

回答

1

AFAIK,有沒有辦法做到這一點自動

,但你可以做這樣的事情:

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

我不知道綠洲省COLUMN_1在您的更新語句reprsesent雖然。

+0

真棒,完美的作品。我不知道我可以創建一個列,我認爲SELECT必須被賦予一個真正的列名稱。很酷。 – user1757006

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