【发布时间】:2019-10-08 22:56:47
【问题描述】:
我有在 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 更改为RIGHT JOIN 和LEFT JOIN,但我得到了相同的结果。在某一时刻,我认为RIGHT JOIN 工作正常,但不知何故,我出错了。
【问题讨论】:
-
avatar_url来自哪里?你到底要数什么?
标签: sql postgresql left-join aggregate