Ich bin eine Datenbank von MySQL zu Postgres SQL wechseln. Eine Select-Abfrage, die in MySQL funktioniert hat, funktioniert in Postgres, eine ähnliche Abfrage zum Löschen jedoch nicht.Löschen mit linken äußeren Join in Postgres
Ich habe zwei Tabellen mit Daten, die auflisten, wo sich bestimmte Sicherungsdateien befinden. Vorhandene Daten (ed) und neue Daten (nd). Diese Syntax wird vorhandene Daten auszusuchen, die angeben könnten, wo eine Datei in der vorhandenen Datentabelle befinden, ist es gegenüber gleiche Dateinamen und Pfad übereinstimmt, aber keine Angaben darüber, wo es in den neuen Daten befindet:
SELECT ed.id, ed.file_name, ed.cd_name, ed.path, nd.cd_name
FROM tv_episodes AS ed
LEFT OUTER JOIN data AS nd ON
ed.file_name = nd.file_name AND
ed.path = nd.path
WHERE ed.cd_name = 'MediaLibraryDrive' AND nd.cd_name IS NULL;
ich möchte eine Lösch-Abfrage mit der folgenden Syntax auszuführen:
DELETE ed
FROM tv_episodes AS ed
LEFT OUTER JOIN data AS nd ON
ed.file_name = nd.file_name AND
ed.path = nd.path
WHERE ed.cd_name = 'MediaLibraryDrive' AND nd.cd_name IS NULL;
ich versucht habe DELETE ed
und DELETE ed.*
von denen beide syntax error at or near "ed"
machen. Ähnliche Fehler, wenn ich ohne den Alias ed
versuche. Wenn ich
DELETE FROM tv_episodes AS ed
LEFT JOIN data AS nd.....
versuchen sendet Postgres syntax error at or near "LEFT"
zurück.
Ich bin ratlos und kann nicht viel zu löschen Abfragen mit Joins spezifische psql finden.
möglich Duplikat von [PostgreSQL: wie Zeilen mit einem Join löschen] (http://StackOverflow.com/Questions/16034253/postgresql-how-to-Delete-rows-using-a-join) – cimmanon