如何在SQL中显示所有用户名

如何在SQL中显示所有用户名,sql,Sql,如何显示所有用户名,即使计数为零 $users = DB::select('select count(c.status) as countEvent, sum(c.point) as totalPoint,u.name from users u left join campaign_users c on u.id=c.user_id where u.deleted_at IS NULL group by u.name order by countEvent desc'); 我想计算每个用户参加

如何显示所有用户名,即使计数为零

$users = DB::select('select count(c.status) as countEvent, sum(c.point) as totalPoint,u.name from users u left join campaign_users c on u.id=c.user_id where u.deleted_at IS NULL group by u.name order by countEvent desc');
我想计算每个用户参加了多少活动,但其中一些根本没有参加,这是零。我想显示除结果之外的所有用户,这些用户至少参加了一次

users - id, name     

campaign_users - status (1 for pending, 2 for attend, 3 for absent), point

我想正确的方法之一是首先查询姓名,然后计算查询结果。

假设您只对状态为2(即参加)的countEvent和totalPoint值感兴趣


如果您能提供样本数据和预期输出,以清楚地了解您的需求,那就太好了。

如果您能提供数据表和所需输出,那就更好了。请提供样本数据和预期输出
SELECT      u.name 
            ,SUM(CASE WHEN c.status = 2 THEN 1 ELSE 0 END) AS countEvent
            ,SUM(CASE WHEN c.status = 2 THEN c.point ELSE 0 END ) AS totalPoint
FROM        users u 
LEFT JOIN   campaign_users c 
ON          u.id=c.user_id 
WHERE       u.deleted_at IS NULL 
GROUP BY    u.name