使用 sqlite3 / pysqlite 跨数据库连接

Ian*_*des 1 python sqlite pysqlite

我有两个单独的数据库文件,每个文件的表都具有匹配的主键,但数据不同。我想根据另一个表中的值从一个表中提取行。在 CLI for 中sqlite3,我会这样做:

.open data.db
.open details.db
attach 'data.db' as data;
attach 'details.db' as details;

select details.A.colA from data.A join details.A using ('key') where data.A.colB = 0 and data.A.colC = 1;
Run Code Online (Sandbox Code Playgroud)

如何使用 重新创建这样的跨数据库连接pysqlite

Mar*_*ers 5

您可以使用以下命令附加其他数据库ATTACH DATABASE

conn = sqlite3.connect('data.db')
conn.execute('ATTACH DATABASE details.db AS details')
Run Code Online (Sandbox Code Playgroud)

出于查询目的,第一个数据库称为main

cursor = conn.cursor()
cursor.execute('''
    select details.A.colA
    from main.A
    join details.A using ('key')
    where main.A.colB = 0 and main.A.colC = 1
    ''')
Run Code Online (Sandbox Code Playgroud)