Maison >base de données >tutoriel mysql >Comment supprimer des lignes orphelines dans une table de base de données en fonction d'ID sans correspondance ?

Comment supprimer des lignes orphelines dans une table de base de données en fonction d'ID sans correspondance ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-24 22:21:19482parcourir

How to Delete Orphan Rows in a Database Table Based on Unmatched IDs?

Supprimer les orphelins en fonction de l'identifiant de non correspondant

Question:

supprimer

dans le tableau blob ne peut pas trouver de ligne de fileid. files id Structure de la table:

Résultats attendus:

<code>files表:
| id | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 7  | .... |
| 9  | .... |

blob表:
| fileid | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 3  | .... |
| 4  | .... |
| 4  | .... |
| 4  | .... |
| 9  | .... |</code>

supprimer La ligne de dans le tableau est 3 et 4, car ils n'ont pas correspondant à la dans le tableau

.

blob Solution: fileid files fileid <.> 1. Utilisez la gauche / est nul:

<.> 2. Utiliser ne pas existe:

<.> 3. Utilisez pas dans:

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

AVERTISSEMENT:

<code class="language-sql">DELETE FROM BLOB 
 WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>
Pour vous assurer qu'il peut être lancé lorsqu'il y a une erreur, veuillez effectuer l'opération de suppression dans la transaction.

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!

Déclaration:
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