Zeilen basierend auf einer anderen Tabelle löschen
In SQL kommt es nicht selten vor, dass Zeilen aufgrund ihrer Anwesenheit aus einer Tabelle gelöscht werden müssen in einer anderen Tabelle. Stellen Sie sich das folgende Szenario vor:
DB-Abfrage:
Ich kann mich anscheinend nie an diese Abfrage erinnern!
Ziel der DB-Abfrage:
Ich möchte alle Zeilen in Tabelle1 löschen, deren IDs mit denen in Tabelle2 übereinstimmen. Dies kann wie folgt ausgedrückt werden:
DELETE table1 t1 WHERE t1.ID = t2.ID
Während der Unterabfrage-Ansatz gültig ist, werden wir untersuchen, wie wir dies mithilfe eines JOIN erreichen können, um die Leistung zu verbessern:
DB-Abfragelösung mit JOIN:
DELETE t1 FROM Table1 t1 JOIN Table2 t2 ON t1.ID = t2.ID;
Durch die Nutzung des JOIN stellen wir eine Beziehung zwischen den Zeilen in Tabelle1 und Tabelle2 basierend auf ihren her ID-Spalte. Zeilen in Tabelle 1, die ID-Werte mit Zeilen in Tabelle 2 teilen, werden identifiziert und können gelöscht werden.
Hinweis:
Das obige ist der detaillierte Inhalt vonWie lösche ich effizient Zeilen aus einer SQL-Tabelle basierend auf IDs in einer anderen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!