Mysql最新记录比较

Mysql最新记录比较,mysql,Mysql,我使用的是一个系统,其中cron作业每天运行,以检查在该日期激活的成员资格,然后检查orders表,如果该查询在该月针对该特定成员资格运行,如果没有运行,则它会为该月的客户收费。 我已经为我的模式设置了 这是我目前的查询 SELECT * FROM membership m JOIN paymenttokeninfo pt ON pt.customerid = m.customerid JOIN orders o ON o.membershipid = m.id WHERE DAY(m.mem

我使用的是一个系统,其中cron作业每天运行,以检查在该日期激活的成员资格,然后检查orders表,如果该查询在该月针对该特定成员资格运行,如果没有运行,则它会为该月的客户收费。 我已经为我的模式设置了

这是我目前的查询

SELECT * 
FROM membership m
JOIN paymenttokeninfo pt ON pt.customerid = m.customerid
JOIN orders o ON o.membershipid = m.id
WHERE DAY(m.membershipdate) = DAY('2020-01-05')
AND m.active = 'Y'
AND m.chargeable = 'Y'
AND pt.isactive = 'Y'
AND pt.token <> ''
AND MONTH(o.orderdate) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
问题是我不了解如何解决订单表部分

任何帮助都将不胜感激。

试试以下方法:

SELECT m.id,m.membershipdate,m.customerid  -- add other columns as needed
FROM membership m
JOIN paymenttokeninfo pt ON pt.customerid = m.customerid
WHERE DAY(m.membershipdate) = DAY('2020-01-05')
AND m.active = 'Y'
AND m.chargeable = 'Y'
AND pt.isactive = 'Y'
AND pt.token <> ''
AND NOT EXISTS(SELECT 1 FROM orders o WHERE o.membershipid = m.id
   AND MONTH(o.orderdate) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)))