1

我有三张桌子。前两个表具有相似的数据,但它们来自不同的来源,并且它们的列数不同。我正在使用第三个表从其他两个表中收集数据。我想要第三个表中的一列,其中包含数据来自的表的名称。

示例: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

AFAIK,无法自动执行此操作

但你可以这样做:

    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 回答