我有三张桌子。前两个表具有相似的数据,但它们来自不同的来源,并且它们没有相同数量的列。我正在使用第三个表从其他两个表中收集数据。我想在第三个表中有一个列,其中包含数据来自的表的名称。
实施例: 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
对此有任何帮助都很棒,谢谢。
答案 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