我想弄清楚如何进行这个SQL查询,但我不知所措。我想我会越过头脑。 我有三张桌子: 1.日期表,其中包含截至2020年的月/年列表。列是'thedate' 2.包含讲座列表的表格。 date()字段是一列,名为“month” 3.日志表,每月包含单独的数据行。即每个用户每年的每个月都有自己的一行数据。
我想拿表#2,查找是否有为月x分配的讲座,然后取表#3,找到对应于月x和特定用户的行,然后查看列'hopkins'(a表3)的一部分是否为空。我希望这有点意义。我已经想出如何使用日期表来查找表#2中缺少的行,但我还没弄清楚如何在上面执行此操作。 谢谢!
答案 0 :(得分:0)
我认为您只需要从eval
到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.id
添加到on
子句中。
如果这不能满足您的需求,请编辑您的问题以提供SQL Fiddle数据的示例结果。