Hallo,

Ik wil graag ophalen hoeveel gebruikers gebruik maken van een bepaald permissie pakket als ik mijn pakketten ophaal. Dit heb ik geprobeerd dmv een count maar dit wil nog niet echt lukken. Ik zit nu met de volgende query

SELECT `permission_pack`.`id`, `permission_pack`.`name`, COUNT(`user`.`id`) as total 
FROM (`permission_pack`) 
INNER JOIN `user` ON `permission_pack`.`id` = `user`.`permission_pack_id` 
LIMIT 29


Total is dus het aantal gebruikers die het pakket gebruiken. Het onderstaande zou ik dus graag terugkrijgen


|ID|   Naam        |total
=========================
| 1| Administrator | 1
| 2| Moderator     | 7
| 3| Gebruiker     | 435
| 4| Banned        | 12


Met meerdere queries lijkt mij dit geen probleem, dit wil ik alleen voorkomen om de snelheid in het systeem te houden. Kan iemand mij een duwtje in de juiste richting geven?
Zo te zien mis je alleen nog een GROUP BY statement:

SELECT permission_pack.id, permission_pack.name, COUNT(user.id) as total
FROM permission_pack
INNER JOIN user ON permission_pack.id = user.permission_pack_id
GROUP BY permission_pack.id, permission_pack.name
LIMIT 29 
Bedankt erwin!

Ik heb er zelf een LEFT JOIN van gemaakt zodat ik de groepen waar geen gebruikers aan gelinkt zijn ook kan vinden.

Nick

Reageren