Php 基于成员和月份映射表的好方法

Php 基于成员和月份映射表的好方法,php,sql,angularjs,Php,Sql,Angularjs,我需要做一张这样简单的桌子 这个表表示每个月的年度会员状态,非常简单,没有高级内容,会员状态由管理员手动更新(当会员付款时,管理员更新该月的状态) 从数据库的角度来看,我有两个简单的表,如下所示: 正如您所看到的,我有一个带有成员id和日期的成员表,当付款时,该表将被填充 所以我的问题是:映射数据以匹配该表的好方法是什么 我的想法是这样的(例如,我想要2017年的所有成员数据) 选择m.*, 集团公司(月(ms.date))作为日期 m成员 m.id=ms.member\u id上的左加入成

我需要做一张这样简单的桌子

这个表表示每个月的年度会员状态,非常简单,没有高级内容,会员状态由管理员手动更新(当会员付款时,管理员更新该月的状态)

从数据库的角度来看,我有两个简单的表,如下所示:

正如您所看到的,我有一个带有成员id和日期的成员表,当付款时,该表将被填充

所以我的问题是:映射数据以匹配该表的好方法是什么

我的想法是这样的(例如,我想要2017年的所有成员数据)

选择m.*,
集团公司(月(ms.date))作为日期
m成员
m.id=ms.member\u id上的左加入成员身份
其中ms.date>=01-01-2018

而ms.date您的查询似乎很好。然后,您可以通过使用日期数组上的
includes
函数来确定日期数组中是否存在月份


例如,要检查二月是否应该有一个X,您需要检查日期。包括(2)
。如果为true,请放置一个X,否则留空。

此查询应返回带有日期的成员列表,是吗?是的,返回带有日期的成员
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