mysql查询一年内每月的最后一条记录

各位大佬,我有两张表,一张基础表,一张数据表(存基础表id),我现在要获取基础表每条记录对应的近一年内,每个月的最后一条记录,sql该怎么写,

select * from data_table where id in (select max(id) from data_table where fkid in (select id from basic_table)group by date_format(joinDatetime, '%Y%m') order by id desc)

说明:子查询先根据时间字段进行分组统计并根据主键倒序排序(或者其他有序的字段),取每组中的最大id就是最后一条记录,然后在父查询中使用id进行查询

给你个思路,把数据表的时间格式化成yyyy-mm后用这个格式化后的时间分组 group 然后条件用having 倒序取limit 1  。再where 限制一年。