0

我试图弄清楚如何执行此 SQL 查询,但我不知所措。我想我已经过头了。我有三个表: 1. datetable,其中包含截至 2020 年的月/年列表。列是“thedate” 2. 包含讲座列表的表。date() 字段是一列,名为“月” 3. 一个日志表,其中包含逐月的数据行。即每个用户在一年中的每个月都有自己的数据行。

我想取表#2,查找是否有分配给x月的讲座,然后取表#3,找到对应于x月和特定用户的行,然后查看列'hopkins'(表的一部分3) 是否为空。我希望这有点道理。我已经想出了如何使用 datetable 来查找表 #2 中缺失的行,但我还没有想出如何在上面执行此操作。谢谢!

4

1 回答 1

0

我认为您只需要从evalto左连接hopkins,然后在现场进行测试:

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.idon子句中。

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

于 2013-08-02T01:14:56.613 回答