Comment compter les utilisateurs par groupe avec MySQL?
-
28-10-2019 - |
Question
J'ai un tableau des groupes:
- id - un identifiant unique (clé primaire)
- groupe - un nom de groupe
J'ai un tableau des utilisateurs:
- nom d'utilisateur - une chaîne unique (clé primaire)
- group_id - un lien de clé étrangère vers group.id
Dans ce cas, un utilisateur ne sera que dans un seul groupe.Alors, dans MySQL, comment puis-je lister les groupes et leur nombre d'utilisateurs membres?
J'ai essayé d'utiliser une sous-sélection et un décompte, mais cela finit par afficher le même décompte sur tous les groupes.
La solution
SELECT group.id,COUNT(users.username) FROM groups
INNER JOIN users ON users.group_id=groups.id
GROUP BY groups.id
Vous pouvez utiliser un LEFT JOIN à la place si vous souhaitez afficher des groupes vides par commentaire de @ Michael
Autres conseils
select g.group, count(*) as group_count
from groups g, users g
where g.id=u.group_id
group by g.groupname
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow