Php 查找连接了两个数据表和日期表的空字段

Php 查找连接了两个数据表和日期表的空字段,php,mysql,sql,Php,Mysql,Sql,我正试图弄清楚如何进行这个SQL查询,但我不知所措。我想我是疯了。 我有三张桌子: 1.datetable,其中包含截至2020年的月/年列表。列为“thedate” 2.包含讲座列表的桌子。日期字段是一列,名为月份 3.一个日志表,它按月包含单独的数据行。i、 e每个用户每年每个月都有自己的数据行 我想取表2,找出是否有为x月分配的讲座,然后取表3,找到对应于x月和特定用户的行,然后查看表3中的“hopkins”列a部分是否为空。我希望这有点道理。我已经知道了如何使用datetable查找表2

我正试图弄清楚如何进行这个SQL查询,但我不知所措。我想我是疯了。 我有三张桌子: 1.datetable,其中包含截至2020年的月/年列表。列为“thedate” 2.包含讲座列表的桌子。日期字段是一列,名为月份 3.一个日志表,它按月包含单独的数据行。i、 e每个用户每年每个月都有自己的数据行

我想取表2,找出是否有为x月分配的讲座,然后取表3,找到对应于x月和特定用户的行,然后查看表3中的“hopkins”列a部分是否为空。我希望这有点道理。我已经知道了如何使用datetable查找表2中缺少的行,但是我还没有知道如何在上面这样做。
谢谢

我认为您只需要从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应该与用户相关,那么您需要将和e.uid=h.id添加到on子句中


如果这不能提供您想要的内容,请编辑您的问题,以提供SQL FIDLE数据的示例结果。

请使用命令descripe tablename of mysql导出您的DDL没有足够的字符空间插入此处,因此我截图。用于显示表格和queryAh很棒。我这里有:。数据包括在内,但都是虚假数据。我相信我有。这不是最漂亮的,但很管用。从datetable LEFT JOIN eval on eval.month=datetable中选择日期。从datetable LEFT JOIN eval on eval.hopkins.month=datetable中选择日期。其中eval.hopkins为NULL且uid为“1”,日期介于“2013-07-01”和“DATE_FORMATNOW”之间,%Y-%m-01