Warum braucht man in dem Fall die "Movies" und "Episodes" Tabellen überhaupt? Soweit ich das überblicke, muss am Ende ja ohnehin nur die files-Tabelle abgeglichen werden? Dann kann man doch aus der alten DB auch nur Werte aus dieser Tabelle holen…
Vorher prüfen ob es doppelte Datenamen gibt, weil das wird in dem Fall natürlich nicht funktionieren:
SELECT strFilename, COUNT(strFilename) AS Wie_oft_doppelt
FROM Files
WHERE playCount > 0
GROUP BY strFilename
HAVING (COUNT(strFilename) > 1)
ORDER BY Wie_oft_doppelt DESC;
Benötigte Daten abrufen:
Suchergebnis "Als SQL kopieren" und wie ob oben in UPDATE statements umwandeln. DAZU ggf in Jake's Vorschlag weitere WHERE-Bedingungen ergänzen. Aktuell werden da die Werte IMMER überschrieben, auch wenn schon ein playCount vorhanden ist! Das kommt natürlich etwas auf die Ansprüche an. Will man nur das "watched" Flag haben, ist das ja egal. Ansonsten braucht es hier ggf. etwas mehr Logik…
Das klappt natürlich nur wenn es (kaum) doppelte Dateinamen gibt. Weil das UPDATE statement wird dann voraussichtlich die Daten von ALLEN Einträgen mit dem gleichen Dateinamen überschreiben.
Aber für Datenbanken mit eindeutigen Dateinamen dürfe das deutlich einfacher gehen, oder?
Hinweis: (insbesondere vor Ausführung des UPDATE-scripts) Backup erstellen!