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.

Était-ce utile?

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
scroll top