Ich versuche, eine einfache korrelierte Unterabfrage zu schreiben, die alle Datensätze für die ausgewählten Mitglieder außer dem letzten löscht.Warum funktioniert diese einfache Unterabfrage nicht?
DELETE FROM table1 p
WHERE member_id IN (1, 2,3)
AND create_dttm < (SELECT MAX(create_dttm)
FROM table1
WHERE member_id = p.member_id)
aber ich erhalte eine Fehlermeldung
falsche Syntax in der Nähe von 'p'.
Ich kann leicht 3 Abfragen schreiben, um die Arbeit zu erledigen. Aber war neugierig zu erfahren, was hier schief läuft? Könntest du mir bitte erklären, wie man diese Abfrage richtig schreibt?
Vielen Dank im Voraus
Dank John .. Aber das hat nicht funktioniert ..Seim Fehler "Falsche Syntax in der Nähe von 'p'." – Ananth
@Ananth: Es gibt * absolut * keinen Syntaxfehler in dieser Antwort, es hat für mich vollkommen funktioniert. Sie müssen etwas übersehen haben, wenn Sie es auf Ihren realen Tisch anwenden. –
@Anndiry, John. Query funktioniert gut .. Es war mein schlechtes .. Vielen Dank :) – Ananth