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

Wie lösche ich Orphan -Zeilen in MySQL mit Joins, nicht existiert oder nicht in?

Mary-Kate Olsen
Freigeben: 2025-01-24 22:27:10
Original
945 Leute haben es durchsucht

How to Delete Orphan Rows in MySQL Using JOINs, NOT EXISTS, or NOT IN?

Effizientes Entfernen verwaister Datensätze in MySQL: Drei bewährte Methoden

Diese Anleitung zeigt drei effektive Techniken zum Löschen verwaister Zeilen in MySQL – Datenbankeinträge ohne entsprechende Datensätze in einer zugehörigen Tabelle basierend auf einer gemeinsamen ID.

Methode 1: Nutzung von LEFT JOIN und IS NULL

Dieser Ansatz verwendet ein LEFT JOIN, um Daten aus zwei Tabellen basierend auf einer bestimmten ID-Spalte zu kombinieren. Verwaiste Zeilen, die durch einen NULL-Wert in der ID-Spalte der verknüpften Tabelle gekennzeichnet sind, werden dann zum Löschen ausgewählt.

<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

Methode 2: Einsatz von NOT EXISTS

Diese Methode verwendet eine Unterabfrage mit NOT EXISTS, um zu prüfen, ob in der zugehörigen Tabelle übereinstimmende Datensätze vorhanden sind. Zeilen ohne Übereinstimmung werden zum Löschen markiert.

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

Methode 3: NOT IN nutzen

Dieser unkomplizierte Ansatz verwendet NOT IN, um IDs direkt zu vergleichen. Zeilen mit fehlenden IDs in der zugehörigen Tabelle werden identifiziert und gelöscht.

<code class="language-sql">DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id
FROM FILES f);</code>
Nach dem Login kopieren

Wichtige Überlegung:

Führen Sie Anweisungen immer DELETE innerhalb einer Transaktion aus, um die Datenintegrität sicherzustellen. Dies ermöglicht ein Rollback im Falle von Fehlern oder unbeabsichtigten Folgen. Verwenden Sie START TRANSACTION vor DELETE und COMMIT (oder ROLLBACK) danach.

Das obige ist der detaillierte Inhalt vonWie lösche ich Orphan -Zeilen in MySQL mit Joins, nicht existiert oder nicht 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