正在查找包含两个数据表和日期表的空字段


Finding null field with two data tables and date table joined

我正试图弄清楚如何执行此SQL查询,但我不知所措。我想我太累了。我有三张桌子:1.日期表,包含截至2020年的月份/年份列表。列为"日期"2.一张包含讲座清单的表格。date()字段是一列,名为"month"3.一个日志表,它按月包含单独的数据行。即,每个用户在一年中的每个月都有自己的一行数据。

我想看看表#2,看看是否有为x月分配的讲座,然后看看表#3,找到对应于x月和特定用户的行,然后看看"hopkins"列(表3的一部分)是否为空。我希望这有点道理。我已经找到了如何使用日期表来查找表2中丢失的行,但我还没有找到上面的方法。谢谢

我认为您只需要从evalhopkins的左联接,然后在字段上进行测试:

select e.uid,
       max(case when h.name is null then 0 else 1 end) as isInHopkins
from eval e left outer join
     hopkins h
     on year(e.month) = year(h.month) and
        month(e.month) = month(h.month)
group by e.uid;

如果hopkins.id应该与用户相关,那么您需要将and e.uid = h.id添加到on子句中。

如果这不能满足您的需求,请编辑您的问题,以提供SQL Fiddle数据的示例结果。