Php Mysql语句,其中不存在时间间隔

Php Mysql语句,其中不存在时间间隔,php,mysql,sql,Php,Mysql,Sql,我基本上是想让我的应用程序在5天和15天的时间窗口内报告物品未归还或过期的情况。经过多次尝试和错误,下面的代码是我能想出的最好的。然而,当我延长到15天时,我仍然收到退回的物品,因此不存在根据电影ID无法正常工作的情况。目标是查看签出中尚未返回的项目,并在时间范围内通知成员延迟日期。有什么建议可以改进这一说法吗 select movieid, dueback from checkout as a where NOT exists ( select * from returns as b

我基本上是想让我的应用程序在5天和15天的时间窗口内报告物品未归还或过期的情况。经过多次尝试和错误,下面的代码是我能想出的最好的。然而,当我延长到15天时,我仍然收到退回的物品,因此不存在根据电影ID无法正常工作的情况。目标是查看签出中尚未返回的项目,并在时间范围内通知成员延迟日期。有什么建议可以改进这一说法吗

select movieid, dueback
from checkout as a
where NOT exists 
(
    select * from returns as b
    where a.movieid = b.movieid
    AND dueback < DATE_SUB(NOW(), INTERVAL 5 DAY)
)
ORDER by dueback;
结账表:checkoutid、outdate、dueback、movieid、customerid、payment


返回表:returnid,today,movieid可在两个计算日期之间使用。请参阅文档,但您可以执行以下操作:

 AND dueback BETWEEN DATE_SUB(NOW(), INTERVAL 5 DAY) AND DATE_SUB(NOW(), INTERVAL 15 DAY)

这样,您将获得从其日期起5到15天内的所有退款。

这是否回答了您的问题?非常感谢。我也在想,但不是这样。为了让事情更清楚,我只想晚5天拍电影,不想退货,这样我就可以通过电子邮件发送提醒。第二,另外一封15天的电子邮件,表明购买价格已经到位。我原以为《不存在》可以解决这个问题,但我仍然可以在归还的电影ID上找到复出日期。我遗漏了一个小的或简单的部分,但仍在努力解决。基本上,转出表和结帐表都可以看到一个共享的电影ID,有没有5天的窗口和15天的单独声明。谢谢你的任何建议或指导。只需使用或即可。您已经使用的过滤器,或15天的状况。或!!!!!对和。谢谢你,马可。这就解决了问题。我知道这很简单,但大脑却被阻塞了。再次感谢你。我从中学到了很多。