通过查看成员的最新状态获取成员列表

问题描述

我有一个复杂的案例,我将其简化为 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 俱乐部的所有学生?答案应该是 CharlieBob。如果我们将日期更改为 1/12/2020,那么答案应该是 AliceBob,因为那天 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 (将#修改为@)