我正在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)?
感谢帮助!