Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi l'erreur \'DELETE FROM employ WHERE (empid, empssn) NOT IN (...)\' lors de la suppression des doublons dans MySQL ?

Linda Hamilton
Libérer: 2024-11-01 16:24:31
original
679 Les gens l'ont consulté

Why Does

Suppression des lignes en double dans les tables MySQL : résolution de l'erreur

Pour éliminer les enregistrements en double d'une table nommée « employé » qui contient les champs « empid », « empid », et 'empssn', identifiez-les d'abord à l'aide de la requête :

<code class="sql">SELECT COUNT(empssn), empssn FROM employee 
GROUP BY empssn 
HAVING COUNT(empssn) > 1</code>
Copier après la connexion

Cependant, la requête de suppression ultérieure :

<code class="sql">DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT MIN(empid), empssn FROM employee 
    GROUP BY empssn
);</code>
Copier après la connexion

rencontre une erreur lors de la spécification de la table cible 'employé' dans le Clause FROM.

Solution :

Pour résoudre cette erreur, enveloppez la sous-requête dans une table dérivée :

<code class="sql">DELETE FROM employee 
WHERE (empid, empssn) NOT IN (
    SELECT empid, empssn FROM (
        SELECT MIN(empid) AS empid, empssn FROM employee 
        GROUP BY empssn
    ) X
);</code>
Copier après la connexion

Cette modification vous permet de référencez la table d'origine dans la sous-requête et supprimez avec succès les lignes en double.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!