假设我有两个这样的表:
table 1:
a b data
--- --- ----
a1 b1 1
a1 b2 2
a2 b1 3
a2 b2 4
table 2:
a b data
--- --- ----
a1 b1 5
a1 b2 6
a2 b1 7
a2 b2 8
我需要通过以下方式将它们组合在一起:
a b c data
--- --- --- ----
a1 b1 1 1
a1 b2 1 2
a2 b1 1 3
a2 b2 1 4
a1 b1 2 5
a1 b2 2 6
a2 b1 2 7
a2 b2 2 8
输入表位于两个不同的文件中,我需要将输出表写入新文件中。
我找到了这个question,但并不是完全相同,我需要在新文件中添加一个新表,而不是一个视图。
将列c
放在a
和b
之后并不重要。
我知道可以添加列
ALTER TABLE table_name ADD c TEXT;
但是用NULL
填充了新列。
答案 0 :(得分:1)
您要创建一个包含其他两个表的新表吗?
CREATE TABLE table3 AS
SELECT a, b, 1 AS c, data FROM table1
UNION ALL
SELECT a, b, 2, data FROM table2;
是一种简单的方法。根据需要使用documentation来将各种数据库文件全部加载到单个会话中,并使用schemaname.tablename
形式指定表名。
如果要向新表中添加约束或其他内容,也可以将其拆分为几个部分:
CREATE TABLE table3(a TEXT, b TEXT, c INTEGER, data INTEGER);
INSERT INTO table3 SELECT a, b, 1, data FROM table1;
INSERT INTO table3 SELECT a, b, 2, data FROM table2;