问题描述
我有一个复杂的案例,我将其简化为 MVCE 示例。假设我们有一个 MySQL 表,其中包含一堆俱乐部和许多学生。每个学生可以加入多个俱乐部,也可以随时离开。
出于 MVCE 的目的,让我们考虑下表:
/* Table: membership */
Club Student Date Status
ABC Alice 1/1/2020 Joined
ABC Bob 1/1/2020 Joined
ABC Charlie 1/2/2020 Joined
XYZ Charlie 1/2/2020 Joined
ABC Alice 1/6/2020 Left
ABC Alice 1/12/2020 Joined
ABC Charlie 1/12/2020 Left
XYZ Alice 1/12/2020 Joined
我使用什么语句来查找 1/9/2020
上 ABC 俱乐部的所有学生?答案应该是 Charlie
和 Bob
。如果我们将日期更改为 1/12/2020
,那么答案应该是 Alice
和 Bob
,因为那天 Alice
加入和 Charlie
离开。
这是我尝试过的,但没有返回我想要的:
SELECT Student
FROM membership
WHERE
Club = "ABC" AND
(SELECT MAX(Date) WHERE Status="Joined" ) > (select MAX(Date) WHERE Status="Left") ;
此外,以上考虑了当前的成员资格。我将如何使其成为特定日期的会员?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)