使用SQlite3和pyodbc在Python中的一个查询中引用来自不同数据库连接的两个表

时间:2018-12-06 09:34:05

标签: python sqlite odbc

我正在Windows上使用Python 3.6 我有两个不同的数据库连接:

conn = pyodbc.connect(DSN=..., autocommit=True, USER="....", PWD="....")
conn2 = sqlite3.connect("Path to DB")

两个都很好。

现在我想在一个查询中引用两个连接:

    cursor = conn.cursor()
    cursor.execute("""SELECT link_id FROM pyodbc db 
                       WHERE link_id1 IN (SELECT link_id1 FROM sqlite3 db)""")
    rows = cursor.fetchall()
    return rows

在此查询中,它给出错误,即找不到sqlite3 db中的列。

我已经准备好通过定义一个子查询来执行子查询:

    cursor = conn.cursor()
    cursor.execute("""SELECT link_id FROM pyodbc db 
                       WHERE link_id1 IN {}""".format(get_data_from_sqlite3_db()))
    rows = cursor.fetchall()
    return rows

它起作用了,但是问题是查询的长度。 get_data_from_sqlite3_db()函数向我返回一个值的元组。 如果我要执行超过10000个值的查询,则会给我一个错误,即查询时间过长。所以我认为我必须使用子查询SELECT函数。

是否可以在一个查询中同时执行(conn和conn2)?

感谢帮助!

0 个答案:

没有答案