Récupérer les données manquantes à l'aide de "SELECT * WHERE NOT EXISTS"
Problème :
Pour récupérer les données d'une table où certaines cellules ne sont pas présentes dans une autre table, un utilisateur a implémenté ce qui suit requête :
SELECT * from employees WHERE NOT EXISTS (SELECT name FROM eotm_dyn)
Cependant, cette requête ne renvoie aucun résultat, malgré des données manquantes connues.
Solution :
Pour résoudre le problème, il est nécessaire pour joindre les deux tables en fonction d'une clé commune, telle que EmployeeID. Utiliser NOT EXISTS sans jointure ne donnera toujours aucun résultat si la deuxième table contient des données.
La requête correcte, en supposant que EmployeeID est la clé de jointure, est :
SELECT * FROM employees e WHERE NOT EXISTS ( SELECT null FROM eotm_dyn d WHERE d.employeeID = e.id )
Alternativement, un une approche moins efficace consisterait à utiliser un LEFT JOIN et à filtrer les valeurs NULL.
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!