Sql 在列中插入表名

Sql 在列中插入表名,sql,sqlite,Sql,Sqlite,我有三张桌子。前两个表有相似的数据,但它们来自不同的来源,列数也不相同。我使用第三个表从另外两个表中收集数据。我希望在第三个表中有一列,其中包含数据来自的表的名称 例如: 表1按以下顺序包含以下数据 (ID、数据_1、数据_2、数据_3、数据_4、数据_5) 表2按以下顺序包含以下数据 (ID、数据_3、数据_1、数据_5、数据_2、数据_4、数据_6、数据_7) 我从两个表中收集所需的数据,表3的列数与表1的列数相同 首先从表1开始 INSERT INTO table_3 SELECT * F

我有三张桌子。前两个表有相似的数据,但它们来自不同的来源,列数也不相同。我使用第三个表从另外两个表中收集数据。我希望在第三个表中有一列,其中包含数据来自的表的名称

例如: 表1按以下顺序包含以下数据

(ID、数据_1、数据_2、数据_3、数据_4、数据_5)

表2按以下顺序包含以下数据

(ID、数据_3、数据_1、数据_5、数据_2、数据_4、数据_6、数据_7)

我从两个表中收集所需的数据,表3的列数与表1的列数相同

首先从表1开始

INSERT INTO table_3
SELECT * FROM table_1
INSERT INTO table_3
SELECT *, 'table_1' FROM table_1
然后从表2开始

INSERT INTO table_3
SELECT ID, data_1, data_2, data_3, data_4, data_5
FROM table_2
INSERT INTO table_3
SELECT ID, data_1, data_2, data_3, data_4, data_5, 'table_2'
FROM table_2
这是工作,我没有问题。但是,我想在表3中创建一列,该列保存从中获取数据的表的名称。我不知道该怎么办。我在表3中添加了另一列,因此它现在有一个列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

这方面的任何帮助都会很好,谢谢。

好的,没有办法自动完成

但你可以这样做:

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

我不确定您的更新声明中的第1列是否已发送。

应归于user194076,但这里有一个更完整的答案:

首先从表1开始

INSERT INTO table_3
SELECT * FROM table_1
INSERT INTO table_3
SELECT *, 'table_1' FROM table_1
然后从表2开始

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

太棒了,效果很好。我不知道我可以创建一个列,我认为SELECT必须有一个真实的列名。很酷。