【问题标题】:SQLite Insert Distinct from 2 variablesSQLite 插入与 2 个变量不同
【发布时间】:2021-06-09 06:17:37
【问题描述】:

我有一个 SQLite 数据库,其中的表包含以下类型的数据:

CREATE TABLE tableName 
    ([A] int, [B] str, [C] str)
;
    
INSERT INTO tableName 
    ([A], [B], [C])
VALUES
    (1, AAA, AAA),
    (2, AAA, BBB),
    (3, ABC, DEF),
    (4, BBB, AAA),
    (5, CCC, DEF),
    (6, DEF, EEE),
    (7, DEF, DDD),
    (8, DDD, BBB),
    (9, EEE, AAA)
;

我需要做的是获取列 B 和 C,创建一个不重复的列表并自动递增唯一值的主键。它需要检查以确保条目不存在 - 所以第二个表将是:

1 - AAA
2 - BBB
3 - ABC
4 - DEF
5 - CCC
6 - EEE
7 - DDD

我觉得应该是这样的:

con = sqlite3.connect('path//DBv15.db')
cur = con.cursor()
cur.execute("INSERT INTO TableB(E) SELECT DISTINCT A.A A.B FROM TableA A;")

但我很确定那是错误的。它需要在添加新行之前扫描表中的重复项,我被卡住了。我正在使用 python 程序来加载和修改我的表。

【问题讨论】:

    标签: python sql sqlite


    【解决方案1】:

    使用UNION 提取两列的值。

    INSERT INTO TableB(E) 
    SELECT B FROM TableA
    UNION
    SELECT C FROM TableA
    

    UNION 返回不同的值,因此不需要DISTINCT

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多