使用python和sqlite3合并来自同一数据库的两个SQLite表

时间:2018-10-11 22:16:43

标签: python sql sqlite

我正在尝试创建一个新表,该表使用两个关键字都通用的id列来组合来自两个不同表的列。假设我们有一个名为db.db的数据库,其中包含两个名为table1和table2的表。

table1看起来像这样:

id | item | price
-------------
 1 | book | 20  
 2 | copy | 30   
 3 | pen  | 10 

和这样的table2:

id | shop | color
-------------
 1 |  11  | blue  
 2 |  34  | red   
 3 |  25  | red 

在sqlite3中我应该怎么写才能有这样的东西?

id | item | price | shop | color
-------------------------------
 1 | book | 20    |  11  | blue 
 2 | copy | 30    |  34  | red   
 3 | pen  | 10    |  25  | red 

谢谢!

2 个答案:

答案 0 :(得分:1)

编辑:尝试将“左联接”更改为“内联接”,以查看其是否有效。

import sqlite3
conn = sqlite3.connect('db.db')   
c = conn.cursor()

def merged():
    c.execute('CREATE TABLE table3 AS SELECT * FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id')
    for line in c.fetchall():
        print(line)
merged()

答案 1 :(得分:0)

您可以使用namespace std{}

itertools.groupby