显示本月尚未创建项目的用户(计数= 0)

时间:2019-05-20 05:51:36

标签: mysql sql

现在我正在显示每个用户(userName)打开的项目(projectName)的数量

SELECT COUNT(projectName) AS "Nombre de projets", userName AS "Nom de l'utilisateur"
FROM projects
WHERE MONTH(date) = MONTH(CURRENT_DATE())
AND YEAR(date) = YEAR(CURRENT_DATE())
GROUP BY userName
ORDER BY COUNT(projectName) DESC

我想显示本月尚未创建项目的用户。

我尝试了几个“加入”示例,但我遗漏了一些东西。

你能帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

一个选项是采用防联接方法的日历表:

SELECT u.userName
FROM (SELECT DISTINCT userName FROM projects) u
LEFT JOIN projects p
    ON u.userName = p.userName AND
       MONTH(p.date) = MONTH(CURRENT_DATE()) AND
       YEAR(p.date) = YEAR(CURRENT_DATE())
WHERE
    p.userName IS NULL;

这假定您没有包含所有用户名的专用表。取而代之的是,我们可以使用projects表本身作为所有用户的真实来源。请注意,我们这里实际上并不需要任何汇总,因为我们只是在检查当前月份和年份中给定用户是否甚至有一条记录,这可以证明该用户创建了一个项目。