Ich bin neu in Python. Ich versuche, zwei SQLite-Datenbanken mit dem gleichen Schema zu vergleichen. Die Tabellenstruktur ist auch in beiden DB identisch, aber die Daten sind unterschiedlich. Ich möchte Pickup die Zeilen aus beiden Tabellen aus beiden Datenbanken, die in nicht vorhanden sind entweder db1.fdetail
oder db2.fdetail
Vergleich zweier SQLite-Datenbanken mit Python
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
Erwartete Ausgabe
id name keyid
1 B k2
2 C K3
3 D K4
4 E K5
5 F K6
Mein Code ist
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()
Also hab ich mir zwei Listen res1
und res2
. Wie kann ich die Listen anhand der Spalte Keyid
vergleichen?
Jede Hilfe wird sehr geschätzt.
Minor nit, aber da der Dateiname in ATTACH ein String-Ausdruck ist, kein Bezeichner, könnten Sie ihn nicht mit Platzhaltern übergeben - im Vergleich zur Verwendung von String-Formatierung. Hier macht sich allerdings kaum etwas aus. –
Vielen Dank für Ihre Hilfe. Es funktionierte. Ich habe ein paar Dinge nicht verstanden. Warum ist es 'main.fdetail' und nicht' db1.fdetail' in der ersten Abfrage –
@ IljaEverilä Ich nahm an, dass der Datenbankname kein Ausdruck war, aber das Testen zeigt, dass es tatsächlich ist. Vielen Dank! –