在sqlite中合并表格

时间:2019-05-07 05:21:29

标签: sqlite

假设我有两个这样的表:

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放在ab之后并不重要。

我知道可以添加列

ALTER TABLE table_name ADD c TEXT;

但是用NULL填充了新列。

1 个答案:

答案 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;