Maison > base de données > tutoriel mysql > Comment trouver efficacement les enregistrements manquants à l'aide de « NOT EXISTS » de SQL ?

Comment trouver efficacement les enregistrements manquants à l'aide de « NOT EXISTS » de SQL ?

Patricia Arquette
Libérer: 2024-12-10 09:52:10
original
1006 Les gens l'ont consulté

How to Efficiently Find Missing Records Using SQL's `NOT EXISTS`?

SELECT * WHERE NOT EXISTS : Recherche des enregistrements manquants

La requête SQL "SELECT * des employés WHERE NOT EXISTS (SELECT nom FROM eotm_dyn) " vise à récupérer toutes les lignes de la table "employés" où leurs noms ne sont pas présents dans la table "eotm_dyn". Cependant, cette requête est incomplète et ne retournera aucun résultat.

Pour compléter la requête, il est nécessaire de joindre les deux tables sur un champ commun, typiquement un champ d'identifiant unique. En supposant que les tables sont jointes sur le champ "employeeID", la requête corrigée devient :

SELECT *
FROM employees e
WHERE NOT EXISTS
(
    SELECT null
    FROM eotm_dyn d
    WHERE d.employeeID = e.id
)
Copier après la connexion

La sous-requête "NOT EXISTS" vérifie l'absence de lignes dans la table "eotm_dyn" où le "employeeID" correspond à "l'identifiant" de la ligne actuelle dans la table "employés". Si aucune ligne de ce type n’existe, la requête externe renverra la ligne entière de la table « employés ». Cette approche garantit que seuls les employés sans entrées dans la table "eotm_dyn" sont sélectionnés.

Alternativement, la requête peut être écrite en utilisant un LEFT JOIN avec un filtre ultérieur pour les valeurs NULL :

SELECT *
FROM employees e
LEFT JOIN eotm_dyn d
ON e.id = d.employeeID
WHERE d.name IS NULL
Copier après la connexion

Cependant, cette méthode peut être moins efficace que l'utilisation de la sous-requête NOT EXISTS, en particulier pour les grandes bases 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