aantal hits in andere tabel meenemen in select

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick Smit

Nick Smit

14/05/2014 09:22:56
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
|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?
Gewijzigd op 14/05/2014 09:26:57 door Nick Smit
 
PHP hulp

PHP hulp

19/04/2024 23:00:18
 
Erwin H

Erwin H

14/05/2014 10:04:00
Quote Anchor link
Zo te zien mis je alleen nog een GROUP BY statement:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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
 
Nick Smit

Nick Smit

14/05/2014 10:27:20
Quote Anchor link
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.