【问题标题】:Combining tables in sqlite在 sqlite 中组合表
【发布时间】:2019-05-07 05:21:28
【问题描述】:

假设我有两个这样的表:

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 填充新列。

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    你想用另外两个的内容创建一个新表吗?

    CREATE TABLE table3 AS
      SELECT a, b, 1 AS c, data FROM table1
      UNION ALL
      SELECT a, b, 2, data FROM table2;
    

    是一种简单的方法。根据需要使用ATTACH 将各种数据库文件全部加载到单个会话中,并使用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;
    

    【讨论】:

      猜你喜欢
      • 2011-01-01
      • 2020-05-29
      • 2021-12-04
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多