Maison >base de données >tutoriel mysql >Comment afficher les comptes zéro dans les requêtes MySQL JOIN ?
Affichage des comptes nuls dans la requête de comptage MySQL
Dans le domaine de la gestion de bases de données, les opérations de comptage sont souvent utilisées pour récupérer des informations globales. Cependant, lorsque vous travaillez avec des requêtes JOIN, il peut être difficile d'afficher des comptes nuls, en particulier lorsqu'il y a des valeurs manquantes ou nulles. Ce problème survient lorsque vous tentez de compter les valeurs de toutes les lignes d'une table, mais que certaines lignes n'ont aucune entrée correspondante dans une table jointe.
Le problème : les comptes zéro manquants
Considérez le scénario suivant : nous avons deux tables, Employee et mailingSubscriptions. La table mailingSubscriptions contient des informations d'abonnement pour les employés, chaque employé ayant un EmployeeName unique. Nous souhaitons déterminer le nombre d'abonnements associés à chaque employé, y compris les employés sans abonnement (c'est-à-dire affichant zéro décompte).
À l'aide de la requête suivante :
Select COUNT(c.Name) From Employee INNER JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName;
Nous récupérerons uniquement compte pour les employés qui ont au moins une entrée dans la table mailingSubscriptions. Les salariés sans abonnements seront exclus des résultats.
La solution : quitter JOIN et GROUP BY
Pour remédier à ce problème et obtenir le décompte de tous les salariés, nous pouvons utiliser une LEFT JOIN et une clause GROUP BY. Un LEFT JOIN garantit que toutes les lignes de la table Employee sont incluses dans les résultats, même s'il n'y a aucune ligne correspondante dans la table mailingSubscriptions. La clause GROUP BY regroupe ensuite les résultats par nom d'employé, nous permettant de compter le nombre d'abonnements pour chaque employé :
SELECT c.name, count(m.mailid) FROM Employee LEFT JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName GROUP BY c.name;
En utilisant cette requête modifiée, nous récupérons désormais le nombre d'abonnements pour tous les employés, y compris ceux qui n’ont aucun abonnement. Cela nous permet d'avoir une vue complète des données d'abonnement des collaborateurs, quel que soit leur statut d'abonnement.
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!