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 ?
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!