我有在 PostgreSQL 数据库中按成员资格加入组的用户的行为。
我有一个查询来为排行榜生成行。但是,它目前排除了 Acts 表不包含具有相应users_id. 我想包括所有小组成员,即使是那些 0 Acts 的成员。
当前查询:
SELECT acts.users_id, username, avatar_url, COUNT(acts.id)
FROM acts
JOIN users ON acts.users_id = users.id
JOIN memberships on memberships.users_id = users.id
WHERE memberships.groups_id = ' + req.params.group_id + '
AND acts.created_at >= (CURRENT_DATE - 6)
GROUP BY acts.users_id, username, avatar_url
ORDER BY COUNT(acts.id) DESC
我曾尝试JOIN在 users 之前更改为RIGHT JOINand LEFT JOIN,但我得到了相同的结果。在某一时刻,我认为这RIGHT JOIN是有效的,但不知何故,我出了差错。