没有行时如何计算?

Mal*_*ist 1 mysql sql

我正在尝试计算当前周没有与之相关的事件的天数,但我不知道该怎么做.

例如,我使用此查询计算本周发生的事件数:

SELECT COUNT(e.event_id) FROM cali_events e
LEFT JOIN cali_dates d
ON e.event_id = d.event_id
WHERE YEARWEEK(d.date) = YEARWEEK(CURRENT_DATE())
Run Code Online (Sandbox Code Playgroud)

但是我只知道如何通过计算每一天并计算返回0的天数来计算天数,但这不是很优雅.

我怎么能用一个查询呢?

p.c*_*ell 10

此查询使用子查询来查找已连接表中的所有唯一日期.然后从七减去唯一日期的数量?

--assuming a 7 day week; no mention in the request about workweek.
      SELECT 7 - COUNT(*) AS NumDaysWithoutEvents
        FROM    
        (SELECT DAY(d.date) 
            FROM cali_events e
            LEFT JOIN cali_dates d
            ON e.event_id = d.event_id
            WHERE YEARWEEK(d.date) = YEARWEEK(CURRENT_DATE())
            GROUP BY DAY(d.date)
        ) AS UniqueDates
Run Code Online (Sandbox Code Playgroud)