Heim >Datenbank >MySQL-Tutorial >Wie finde und entferne ich Zeilen in Tabelle1 ohne übereinstimmende Einträge in Tabelle2?
Zeilen aus der Datenbank abrufen, die keine Übereinstimmungen in einer anderen Tabelle haben: ausführliche Erklärung
In der Welt der Datenbankverwaltung kommt es nicht selten vor, dass die Datenintegrität aufgrund fehlender Fremdschlüsseleinschränkungen beeinträchtigt wird. Um solche Probleme zu beheben, müssen Zeilen identifiziert und gelöscht werden, die in der referenzierten Tabelle keine Übereinstimmung aufweisen. In diesem Artikel geht es darum, wie man eine Abfrage schreibt, die diese Aufgabe erfüllt, und bietet ein Beispiel für die Funktionalität sowie eine detaillierte Erläuterung der zugrunde liegenden Mechanismen.
Angenommen, wir haben zwei Tabellen, Tabelle1 und Tabelle2, wobei Tabelle1 Werte enthält, die als Fremdschlüsselverweise auf Tabelle2 verwendet werden (jedoch ohne Fremdschlüsseleinschränkungen). Unser Ziel ist es, eine Abfrage zu erstellen, die alle Zeilen in Tabelle1 zurückgibt, die in Tabelle2 keine Übereinstimmung haben, damit sie dann gelöscht werden können.
Abfragekonstruktion und -interpretation
Die folgenden Abfragen erfüllen unsere Anforderungen:
<code class="language-sql">SELECT t1.ID FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.ID = t2.ID WHERE t2.ID IS NULL;</code>
Abfragezerlegung:
Mit dieser Abfrage können wir Zeilen in Tabelle1, die keine entsprechenden Einträge in Tabelle2 haben, leicht identifizieren und löschen und so die Datenintegrität der Datenbank wahren.
Das obige ist der detaillierte Inhalt vonWie finde und entferne ich Zeilen in Tabelle1 ohne übereinstimmende Einträge in Tabelle2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!