【问题标题】:Copy data from one column to another from different tables in sqlite从sqlite中的不同表将数据从一列复制到另一列
【发布时间】:2011-03-31 16:08:22
【问题描述】:

我想将数据从 Table2 的 B 列复制到 Table1 的 A 列。 A 列的行为空,并且 Table1 中存在其他列已填充数据。所以我需要从 Table2 中获取整个 B 列,并将所有这些值插入到 Table1 的 A 列中。这两个表完全相同,只是 A 列根本没有值。

我如何在 sqlite3 中做到这一点?

【问题讨论】:

    标签: sql sqlite


    【解决方案1】:

    用途:

    INSERT INTO TABLE1
    SELECT B,
           NULL,
           NULL,
           NULL
      FROM TABLE2
    

    假设 TABLE1 列允许 NULL 值,则使用 NULL 作为无法从 TABLE2 填充的许多列的占位符。

    【讨论】:

      【解决方案2】:
      UPDATE TABLE1 SET A = (SELECT B FROM TABLE2 WHERE ...)
      

      想一想,如果这些表确实相同,为什么需要其中两个?无论如何,您也可以这样做:

      BEGIN;
      DELETE FROM TABLE1;
      INSERT INTO TABLE1 (A, col1, col2, ...) SELECT (B, col2, col2, ...) FROM TABLE2;
      COMMIT;
      

      【讨论】:

      • 这也不起作用...它在表 1 的每一行中插入相同的值(表 2 中第一行的值)。对于每一行,表 2 中都有一个不同的值,需要映射到表 1 中的 A 列。那我该怎么做呢?
      • 你需要一个 where 子句来匹配行;请参阅上面的修订答案
      【解决方案3】:

      试试这个: 插入表 1 (A) 从表 2 中选择 B

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-15
        • 2015-02-18
        • 1970-01-01
        相关资源
        最近更新 更多