Ich habe zwei Tabellen, eine für Job-Deadlines, eine für die Beschreibung eines Jobs. Jeder Job kann einen Status annehmen und einige Status bedeuten, dass die Jobtermine aus der anderen Tabelle gelöscht werden müssen.Löschen von Zeilen mit MySQL LEFT JOIN
Ich kann leicht SELECT
die Arbeitsplätze/Fristen, die meine Kriterien mit einem LEFT JOIN
erfüllt:
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
(status
gehört job
Tabelle nicht deadline
)
Aber wenn ich möchte diese Zeilen löschen von deadline
, wirft MySQL einen Fehler. Meine Frage ist:
DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
MySQL Fehler sagt nichts:
Sie haben einen Fehler in Ihrer SQL-Syntax; Sie in die Bedienungsanleitung zu Ihrer MySQL-Server-Version für die richtige Syntax entspricht in der Nähe zu verwenden ‚LEFT JOIN
job
ON deadline.job_id = job.job_id WHEREstatus
= 'szaml' at line 1
Wie kann ich meine SELECT
drehen in eine funktionierende DELETE
Abfrage?
Verwenden Sie auch "Status in ('szamlazva', 'szamlazhato', 'fizetve', .........)" – Salil
Mit "AS" musste ich den Alias in meiner Klausel verwenden, damit er für meine Arbeit funktioniert Zweck (löschen Waisen): DELETE FROM t1 table1 AS t1 LEFT t2 als t2 JOIN ON t1.uid = t2.result WHERE t2.result IS NULL – Urs
Referenz: http://dev.mysql.com/doc/ refman/5.7/de/delete.html – Slawa