Maison > Questions et réponses > le corps du texte
J'ai une requête qui contient le nombre total d'utilisateurs dans 计算所有用户
,具有角色“admin”的用户总数
,具有角色“control_operator”
的用户总数和具有角色“guard”
. p>
La requête fonctionne, mais il y a un problème/bug que je n'arrive pas à comprendre.
Il y a actuellement 2 utilisateurs dans la base de données, dont un a super_admin 和 admin
角色,另一个具有 control_operator
. L'affichage frontal est comme ceci :
Pourquoi y a-t-il 3 utilisateurs alors qu'il n'y en a que 2 ?
Voici ma requête
// Retrieve the counts of admins, users, control operators, and security guards $countData = User::selectRaw(' SUM(CASE WHEN roles.name = "admin" THEN 1 ELSE 0 END) as totalAdmins, COUNT(*) as totalUsers, SUM(CASE WHEN roles.name = "control_operator" THEN 1 ELSE 0 END) as totalControl, SUM(CASE WHEN roles.name = "security_guard" THEN 1 ELSE 0 END) as totalGuards ')->join('model_has_roles', 'users.id', '=', 'model_has_roles.model_id') ->join('roles', 'model_has_roles.role_id', '=', 'roles.id') ->first();
P粉1112278982024-04-06 10:47:29
$countData = User::selectRaw(' COUNT(DISTINCT users.id) as totalUsers, SUM(CASE WHEN roles.name = "admin" THEN 1 ELSE 0 END) as totalAdmins, SUM(CASE WHEN roles.name = "control_operator" THEN 1 ELSE 0 END) as totalControl, SUM(CASE WHEN roles.name = "security_guard" THEN 1 ELSE 0 END) as totalGuards ') ->join('model_has_roles', 'users.id', '=', 'model_has_roles.model_id') ->join('roles', 'model_has_roles.role_id', '=', 'roles.id') ->first();