将表名插入列

时间:2012-10-18 17:44:29

标签: sql sqlite

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

实施例: 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

对此有任何帮助都很棒,谢谢。

2 个答案:

答案 0 :(得分:2)

AFAIK,没有办法自动执行此操作

但你可以这样做:

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

我不确定更新语句中的wahat Column_1是否会重新发布。

答案 1 :(得分: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