Heim >Datenbank >MySQL-Tutorial >Wie lösche ich Orphan -Zeilen in SQL mit dem linken Join, nicht existiert oder nicht in?

Wie lösche ich Orphan -Zeilen in SQL mit dem linken Join, nicht existiert oder nicht in?

Susan Sarandon
Susan SarandonOriginal
2025-01-24 22:37:10444Durchsuche

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

Löschen Sie die Zeile ohne Übereinstimmung in der SQL -Tabelle

Löschen Sie den Orphan -Eintrag in der SQL -Tabelle. Betrachten Sie Folgendes:

Sie haben zwei Tabellen:

Dateien:
    enthält eine ID -Spalte.
  • TABLE BLOB: enthält eine Datei -ID -Spalte.
  • Datei- und ID -Spalten können für Verbindungstabellen verwendet werden. Ihr Ziel ist es, alle Zeilen zu löschen, die nicht in der Tabelle gefunden werden können. ID im Tischblob.
  • Für diese Aufgabe gibt es drei Hauptmethoden:

Verwenden Sie den linken Join/IS null:

Verwendung nicht existiert:

<code class="language-sql">DELETE b FROM BLOB b 
LEFT JOIN FILES f ON f.id = b.fileid 
WHERE f.id IS NULL</code>
Verwenden Sie nicht in:

Warnung:
<code class="language-sql">DELETE FROM BLOB 
WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>

Stellen Sie bei der Ausführung eines Löschvorgangs sicher, dass sie sie in Angelegenheiten ausführen. Auf diese Weise können Sie bei einem Fehler zur Änderung zurückkehren, wodurch das Risiko eines Datenverlusts minimiert wird.

Das obige ist der detaillierte Inhalt vonWie lösche ich Orphan -Zeilen in SQL mit dem linken Join, nicht existiert oder nicht in?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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