私はPythonの新機能です。私は、同じスキーマを持つ2つのsqliteデータベースを比較しようとしています。テーブル構造も両方のdbで同じですが、データは異なります。私はピックアップのいずれかdb1.fdetail
またはdb2.fdetail
Pythonを使用した2つの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
私のコードは、だから私は二つのリストres1
とres2
を持っている
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()
です。列Keyid
に基づいてリストを比較するにはどうすればよいですか。
ご協力いただきまして誠にありがとうございます。
軽度ですが、ATTACHのファイル名は識別子ではなく文字列式なので、文字列の書式設定と比較して、プレースホルダを使用して渡すことはできません。しかし、ここではほとんど違いはありません。 –
ご協力いただきありがとうございます。出来た。私は物事のカップルを理解していない。なぜ最初のクエリで 'main.fdetail'で' db1.fdetail'でないのですか? –
@IljaEveriläデータベース名が式ではないと仮定しましたが、テストでは実際にそれが示されています。ありがとう! –