Löschen von Fristen mit LEFT JOIN in MySQL
Im Zusammenhang mit der Verwaltung von Jobfristen und Jobbeschreibungen, die in zwei Tabellen gespeichert sind, sind Sie auf Schwierigkeiten gestoßen beim Löschen von Zeilen basierend auf einer LEFT JOIN-Abfrage. Um dieses Problem zu lösen, ist es wichtig, die richtige Syntax für die Ausführung von DELETE-Abfragen mit LEFT JOINs zu verstehen.
Mit der LEFT JOIN-Anweisung können Sie Zeilen aus der „linken“ Tabelle (in diesem Fall Deadline) auswählen und den Abgleich einbeziehen Zeilen aus der „richtigen“ Tabelle (in diesem Fall Job) basierend auf einer Join-Bedingung. Das Löschen von Zeilen mit LEFT JOIN erfordert jedoch eine geringfügige Änderung Ihrer Abfragesyntax.
Um Zeilen basierend auf einem LEFT JOIN mit der Jobtabelle erfolgreich aus der Deadline-Tabelle zu löschen, müssen Sie explizit die Tabelle angeben, aus der die Zeilen werden gelöscht. Hier sind die möglichen Variationen:
Nur Deadline-Zeilen löschen
Wenn Sie nur die Deadline-Zeilen löschen möchten, sollte Ihre Abfrage wie folgt geändert werden:
DELETE `deadline` 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';
In dieser Abfrage gibt DELETE Deadline FROM an, dass Sie Zeilen aus der Deadline-Tabelle löschen möchten. Der LEFT JOIN wird verwendet, um die Zeilen basierend auf der Statusspalte der Jobtabelle zu filtern.
Frist- und Jobzeilen löschen
Wenn Sie sowohl den Termin als auch den Job löschen möchten Um Zeilen basierend auf den LEFT JOIN-Kriterien zu erstellen, sollten Sie die folgende Abfrage verwenden:
DELETE `deadline`, `job` 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';
Hier DELETE Deadline, Job FROM gibt an, dass Sie Zeilen sowohl aus der Deadline- als auch aus der Jobtabelle löschen möchten.
Nur Jobzeilen löschen
Wenn Sie nur die Jobzeilen löschen, aber behalten möchten Für die Deadline-Zeilen sollten Sie die folgende Abfrage verwenden:
DELETE `job` 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';
Es ist wichtig, die Reihenfolge der Tabellennamen in der DELETE-Anweisung im Auge zu behalten kann sich darauf auswirken, welche Zeilen gelöscht werden.
Das obige ist der detaillierte Inhalt vonWie lösche ich Zeilen mit LEFT JOIN in MySQL DELETE-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!