我是Python新手。我試圖比較具有相同模式的兩個sqlite數據庫。表格結構在兩個數據庫中也是相同的,但數據不同。我想拾取兩個表中從兩個數據庫中不存在在任一db1.fdetail
或db2.fdetail
使用Python比較兩個sqlite數據庫
DB1 -
Table - fdetail
id name key
1 A k1
2 B K2
3 C K3
DB2 -
Table - fdetail
id name keyid
1 A k1
2 D K4
3 E K5
4 F K6
行
期望輸出
id name keyid
1 B k2
2 C K3
3 D K4
4 E K5
5 F K6
我的代碼是
import sqlite3
db1 = r"C:\Users\X\Documents\sqlitedb\db1.db"
db2 = r"C:\Users\X\Documents\sqlitedb\db2.db"
tblCmp = "SELECT * FROM fdetail order by id"
conn1 = sqlite3.connect(db1)
conn2 = sqlite3.connect(db2)
cursor1 = conn1.cursor()
result1 = cursor1.execute(tblCmp)
res1 = result1.fetchall()
cursor2 = conn2.cursor()
result2 = cursor2.execute(tblCmp)
res2 = result2.fetchall()
所以我有兩個列表res1
和res2
。如何根據列Keyid
來比較列表。
任何幫助,高度讚賞。
Minor nit,但由於ATTACH中的文件名是字符串表達式,而不是標識符,因此您可以不使用佔位符來傳遞它 - 與使用字符串格式相比。儘管這裏幾乎沒有什麼區別。 –
非常感謝您的幫助。有效。我不明白幾件事情。爲什麼它在第一個查詢中是'main.fdetail'而不是'db1.fdetail' –
@IljaEverilä我假設數據庫名稱不是表達式,但測試顯示它實際上是。謝謝! –