Löschen von Zeilen aus einer MySQL-Tabelle mithilfe eines LEFT JOIN
Frage:
Sie haben zwei MySQL-Tabellen, von denen eine die Jobfristen darstellt und die andere Jobs beschreibt. Jeder Job hat einen Status und bestimmte Status geben an, dass die entsprechenden Fristzeilen gelöscht werden sollten. Mit einem LEFT JOIN können Sie die Termin- und Jobzeilen auswählen, die Ihren Kriterien entsprechen. Beim Versuch, diese Zeilen zu löschen, tritt jedoch ein Fehler auf. Wie können Sie Ihre Abfrage ändern, um die gewünschte Löschung zu erreichen?
Antwort:
Um Zeilen aus einer MySQL-Tabelle mithilfe eines LEFT JOIN zu löschen, müssen Sie angeben, welche Tabelle( s) zum Löschen. Der Fehler, auf den Sie gestoßen sind, ist wahrscheinlich auf die Auslassung dieser Spezifikation zurückzuführen.
Lösungen:
1. Nur Fristzeilen löschen:
Um nur die Zeilen aus der Fristtabelle zu löschen, verwenden Sie die folgende Abfrage:
DELETE `deadline` FROM `deadline` LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE ...;
2. Löschen Sie sowohl Frist- als auch Auftragszeilen:
Um sowohl die Frist- als auch die Auftragszeilen zu löschen, verwenden Sie die folgende Abfrage:
DELETE `deadline`, `job` FROM `deadline` LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE ...;
3. Nur Jobzeilen löschen:
Um nur die Jobzeilen zu löschen, verwenden Sie die folgende Abfrage:
DELETE `job` FROM `deadline` LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE ...;
Ersetzen Sie in jedem Fall ... durch die entsprechende WHERE-Klausel Geben Sie die Jobstatus an, für die Sie die Zeilen löschen möchten.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe eines LEFT JOIN Zeilen aus einer MySQL-Tabelle löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!