Maison > base de données > tutoriel mysql > Comment supprimer des lignes orphelines dans SQL en utilisant LEFT JOIN, NOT EXISTS ou NOT IN ?

Comment supprimer des lignes orphelines dans SQL en utilisant LEFT JOIN, NOT EXISTS ou NOT IN ?

Susan Sarandon
Libérer: 2025-01-24 22:37:10
original
432 Les gens l'ont consulté

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

Supprimer les lignes de la table SQL qui n'ont aucune correspondance

Supprimer les entrées orphelines dans une table SQL. Une situation courante consiste à identifier les lignes d'une table pour lesquelles il manque des lignes correspondantes dans une autre table. Considérez ce qui suit :

Vous disposez de deux tables :

  • Fichiers de table : contient une colonne id.
  • Table blob : contient une colonne fileid.

Les colonnes fileid et id peuvent être utilisées pour joindre des tables. Votre objectif est de supprimer toutes les lignes de la table blob où l'ID de fichier n'est pas trouvé dans la table files.id.

Il existe trois méthodes principales pour cette tâche :

Utilisez LEFT JOIN/IS NULL :

<code class="language-sql">DELETE b FROM BLOB b 
LEFT JOIN FILES f ON f.id = b.fileid 
WHERE f.id IS NULL</code>
Copier après la connexion

Utiliser NE PAS EXISTE :

<code class="language-sql">DELETE FROM BLOB 
WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>
Copier après la connexion

Utilisez PAS DANS :

<code class="language-sql">DELETE FROM BLOB
WHERE fileid NOT IN (SELECT f.id 
                        FROM FILES f)</code>
Copier après la connexion

Attention :

Lorsque vous effectuez des opérations DELETE, assurez-vous toujours qu'elles sont effectuées dans le cadre d'une transaction. Cela vous permet d'annuler les modifications si des erreurs se produisent, minimisant ainsi le risque de perte de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal