【发布时间】:2012-02-11 09:32:42
【问题描述】:
我整晚都在工作,以完成我正在从事的项目的统计部分。此统计部分的一部分是向管理员显示哪些订阅者在给定日期之间没有续订订阅。
表格
- members -
id (int)
hasSubscription (enum 1,0)
- subscriptions -
id (int)
member_id (int)
endDate (date)
active (enum 1,0)
示例
SELECT COUNT(*) FROM members as m
INNER JOIN subscriptions as s ON s.member_id = m.id
WHERE
s.endDate BETWEEN '2011-01-01' AND '2011-02-01'
s.active = 0
m.hasSubscription = 1
通常这就是我可以计算在给定 2 个日期之间订阅和订阅完成的成员的方法。
我所追求的是让订阅在给定 2 个日期之间结束但没有更多有效订阅的成员数量。
在这一点上,我不能再思考了。如果您能帮助我,我将非常高兴。
【问题讨论】:
-
您不能简单地使用 hasSubscription 字段将您的查询限制为没有任何订阅的成员吗?还是该字段不那样工作?
-
hasSubscription 仅用于判断成员是否曾经订阅过。它不用于是否有活动订阅。再想一想(最近睡得不多)也许最好再增加一个字段来确定会员是否有活跃订阅。
标签: sql count inner-join