DELETE mit Select funktioniert nicht

Kalicronic

Benutzer
Beiträge
7
Hallo Leutz,

ich hab eine Select abfrage die funktioniert (ausprobiert!), aber in Verbindung mit der folgend gezeigten Delete Anweisung sagt er mir:
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '(
SELECT * FROM employees t1
JOIN dept_emp t2 ON t1.emp_no = t2.emp_no
LEFT J' in Zeile 1

Code:
DELETE FROM employees(
SELECT * FROM employees t1
JOIN dept_emp t2 ON t1.emp_no = t2.emp_no
LEFT JOIN dept_manager t3 ON t3.dept_no = t1.emp_no
WHERE DATEDIFF(SYSDATE(), t1.birth_date)/365 > 59
AND t2.dept_no = 'd004'
AND NOT t1.emp_no = (
    SELECT emp_no FROM dept_manager
        WHERE dept_no = 'd004'
        and to_date > sysdate())
);

Muss ich die komplette Anweisung umschreiben??? -.-'
 
Werbung:
Bissl mehr Erklärung wäre ja schon schön, auch wenn ich nicht konkret danach gefragt habe. :D
Trotzdem danke :p

Warum funktioniert es so nicht, wie könnte ich das schnellst möglich umformulieren oder hätte da jemand vielleicht eine schnelle Lösung parat.!?
Ich tue mich da etwas schwer mit und muss das heute noch fertig bekommen und damit etwas rum testen in einer DB.
 
Jeder Befehl hat seine eigene Syntax, DELETE z.B. (in PostgreSQL):

Code:
Anweisung:  DELETE
Beschreibung: löscht Zeilen einer Tabelle
Syntax:
[ WITH [ RECURSIVE ] With-Anfrage [, ...] ]
DELETE FROM [ ONLY ] Tabellenname [ * ] [ [ AS ] Alias ]
  [ USING Using-Liste ]
  [ WHERE Bedingung | WHERE CURRENT OF Cursor-Name ]
  [ RETURNING * | Ausgabeausdruck [ [ AS ] Ausgabename ] [, ...] ]

Deine Verwunderung, das eine andere Syntax nicht geht, sollte also begrenzt sein.
 
Also wie eine simple DELETE Anweisung funktioniert ist mir schon klar.
Ich hab nur gehofft das ich das irgendwie auch mit der schon formulierten Selekt-Anweisung Kombinieren kann.
Nun bin ich leider immer noch nicht "viel" schlauer und weis nicht wie genau ich das ganze anders aufbauen soll...
 
Werbung:
schau mal, wenn Du ein select * from t1 join t2 machst, dann hat Deine Ergebnismenge schon mal die Spalten von t1 UND t2. Zum Löschen aber muß Du angeben, welche Zeilen gelöscht werden sollen. Idealerweise ermittelt man dazu die Primary keys der zu löschenden Zeilen.
 
Zurück
Oben