Hallo,
Für meine beiden Fragen konnte ich mir mittlerweile folgende beide Abfragen erarbeiten:
Code:
SELECT * FROM SyncDB.Table1 WHERE SyncDB.Table1.GUID NOT IN (SELECT
GUID FROM Table1)
SELECT * FROM SyncDB.Table1 JOIN Table1 ON SyncDB.Table1.GUID = Table1.GUID WHERE SyncDB.Table1.VersionKey != Table1.VersionKey
Das klappt soweit ganz gut, es werden die richtigen Ergebnisse geliefert. Nun kann ich die Ergebnisse natürlich Zeile für Zeile durchlaufen und einzeln in INSERTs oder UPDATEs stecken. Schöner wäre es natürlich die Ergebnisse direkt in
SQL weiter verwenden zu können. Hierzu habe ich folgendes Beispiel gefunden:
Code:
UPDATE
Table1
SET
col1 = SyncDB.Table1.col1,
col2 = SyncDB.Table1.col2
FROM
Table1
INNER JOIN
SyncDB.Table1
ON
Table1.GUID = SyncDB.Table1.GUID
Das sieht sehr vielversprechend aus und wäre genau was ich suche, funktioniert aber leider nicht. Hier meldet mir SQLite einen Syntax Fehler beim FROM. Weiß jemand ob diese Art der Abfrage bei SQLite generell nicht möglich ist, oder ob ich hier einen Fehler mache?
Damit das Ganze wirklich perfekt wäre, müsste man die Abfrage natürlich noch um einen Test der Versionen ergänzen. Zudem muss die Abfrage in dieser Form für jede Tabelle speziell mit den jeweiligen Spaltennamen erstellt werden. Gibt es auch ein Update der Form:
Code:
UPDATE
Table1
SET
"Alle Spalten in Table1 außer der ID-Spalte" = "Jeweilige Spalte aus Tabelle SyncDB.Table1"
FROM/WHERE
...