【发布时间】:2018-10-11 19:41:19
【问题描述】:
我正在尝试创建一个将两个不同表中的列组合在一起的新表。 假设我有一个名为 db.db 的数据库,其中包含两个名为 table1 和 table2 的表。
table1 如下所示:
id | item | price
-------------
1 | book | 20
2 | copy | 30
3 | pen | 10
和table2这样(注意有重复的轴):
id | item | color
-------------
1 | book | blue
2 | copy | red
3 | pen | red
1 | book | blue
2 | copy | red
3 | pen | red
现在我正在尝试创建一个名为 new_table 的新表,它将价格和颜色列组合在同一轴上并且没有重复。我的代码如下(由于我的 SQL 技能不好,它显然不起作用):
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE new_table (id varchar, item integer, price integer, color integer)")
cur.execute("ATTACH DATABASE 'db.db' AS other;")
cur.execute("INSERT INTO new_table (id, item, price) SELECT * FROM other.table1")
cur.execute("UPDATE new_table SET color = (SELECT color FROM other.table2 WHERE distinct(id))")
con.commit()
我知道最后一行代码中有多个错误,但我无法理解它。您对这个问题的处理方法是什么?谢谢!
【问题讨论】: