MySQL 查询方式不佳



我有以下查询来检查客户订阅。这不是查询中正确的方法,但我不知道如何优化或纠正它。在这里。

SELECT sub_id FROM subscription 
WHERE start_date = CURDATE()
AND end_date > CURDATE()
AND sub_id NOT IN (SELECT DISTINCT sub_id FROM subscription
WHERE start_date < CURDATE());

子查询的原因是筛选出以前至少订阅sub_id。

你不需要SELECT DISTINCT sub_id FROM subscription WHERE start_date < CURDATE()子查询 - 你已经有条件start_date = CURDATE().

SELECT sub_id FROM subscription 
WHERE start_date = CURDATE()
AND end_date > CURDATE()

此查询将选择从CURDATE()日开始并在将来的某一天停止的所有订阅。

最新更新