Heim > Datenbank > MySQL-Tutorial > Wie lösche ich verwaiste Zeilen in SQL mithilfe der Unterabfragen LEFT JOIN, EXISTS oder NOT IN?

Wie lösche ich verwaiste Zeilen in SQL mithilfe der Unterabfragen LEFT JOIN, EXISTS oder NOT IN?

Linda Hamilton
Freigeben: 2025-01-24 22:35:13
Original
610 Leute haben es durchsucht

How to Delete Orphan Rows in SQL Using LEFT JOIN, EXISTS, or NOT IN Subqueries?

Verwenden Sie SQL, um die Zeile ohne Übereinstimmung

zu löschen Bei der Verarbeitung mehrerer Tabellen in der Beziehungsdatenbank ist es manchmal erforderlich, eine Zeile zu identifizieren und zu löschen, ohne dass eine entsprechende Übereinstimmung in einer Tabelle in einer Tabelle entspricht. Dieser Vorgang wird normalerweise als "isolierte Einträge löschen" bezeichnet.

Betrachten Sie die folgende Szene:

Sie haben zwei Tabellen, "Dateien" und "Blob", von denen "Dateien.ID" verwendet werden können, um eine Verbindung zu "Blob.fileid" herzustellen.
  • Ihr Ziel ist es, alle Zeilen zu löschen, die nicht mit dem Wert "ID" in der Tabelle "Blob" übereinstimmen.
  • Aus diesem Grund können Sie verschiedene SQL -Methoden verwenden:

Verwenden Sie den linken Join und ist null

Die Verwendung existiert sub -query
<code class="language-sql">DELETE b FROM BLOB b
LEFT JOIN FILES f ON f.id = b.fileid
WHERE f.id IS NULL</code>
Nach dem Login kopieren

Verwenden Sie nicht in sub -query
<code class="language-sql">DELETE FROM BLOB
WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>
Nach dem Login kopieren

Hinweis:
<code class="language-sql">DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
                        FROM FILES f)</code>
Nach dem Login kopieren
Wenn möglich, wird empfohlen, Löschvorgänge in Transaktionen durchzuführen, damit Sie sich ändern können, wenn Unfälle auftreten.

Das obige ist der detaillierte Inhalt vonWie lösche ich verwaiste Zeilen in SQL mithilfe der Unterabfragen LEFT JOIN, EXISTS oder NOT IN?. 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