我需要做这样一个简单的表格

这个表代表每个月的年度会员状态,它非常简单,那里没有高级的东西,会员状态是由管理员手动更新的(当会员支付时,管理员更新该月的状态)。
从数据库的角度来看,我有两个简单的表,如下所示:

正如你所看到的,我有带有member_id和date的membership表,当付款时,该表被填充。
所以我的问题是:映射数据以匹配该表的好方法是什么?
我的想法是这样的(例如,我想要2017年的所有成员数据)
select m.*,
GROUP_CONCAT(MONTH(ms.date)) as dates
from members m
left join membership ms on m.id = ms.member_id
where ms.date >= 01-01-2018
and ms.date <= 12-31-2018这个查询应该返回带有日期数组的成员列表(数字数组,每个数字代表月份),所以在UI端,我可以基于它来生成这个表视图?对此有什么建议,谁有更好的解决方案?
发布于 2018-05-17 04:39:20
您的查询看起来很好。然后,通过对日期数组使用includes函数,可以使用它来确定日期数组中是否存在月份。
例如,要检查是否应该有代表二月的X,您可以检查dates.includes(2)。如果为true,则放置一个X,否则保留为空。
https://stackoverflow.com/questions/50379160
复制相似问题