Sql 在列中插入表名
我有三张桌子。前两个表有相似的数据,但它们来自不同的来源,列数也不相同。我使用第三个表从另外两个表中收集数据。我希望在第三个表中有一列,其中包含数据来自的表的名称 例如: 表1按以下顺序包含以下数据 (ID、数据_1、数据_2、数据_3、数据_4、数据_5) 表2按以下顺序包含以下数据 (ID、数据_3、数据_1、数据_5、数据_2、数据_4、数据_6、数据_7) 我从两个表中收集所需的数据,表3的列数与表1的列数相同 首先从表1开始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
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必须有一个真实的列名。很酷。