Heim > Datenbank > MySQL-Tutorial > Wie lösche ich Zeilen mit LEFT JOIN in MySQL DELETE-Abfragen?

Wie lösche ich Zeilen mit LEFT JOIN in MySQL DELETE-Abfragen?

Mary-Kate Olsen
Freigeben: 2024-11-30 09:07:15
Original
498 Leute haben es durchsucht

How to Delete Rows Using LEFT JOIN in MySQL DELETE Queries?

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';
Nach dem Login kopieren

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';
Nach dem Login kopieren

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';
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage