场景:
血糖录入分为早餐、午餐、晚餐,某个餐中可以多次录入数据。想要得到的数据是,每餐最新那条数据。
实现思路:
先通过子查询按照时间排序查出从时间最新排序的数据,然后再对数据进行group by
原生sql:
select * from (select * from hhd_blood_glucose where user_id = 600108 and time between 1543507259 and 1543591439 order by time desc limit 999999) a group by a.time_point;
TP5:
$subQuery = Db::table('hhd_blood_glucose')
->field('user_id, glucose,status, time, time_point')
->where($whereData)
->order('time desc')
->limit(0, 1000000)
->buildSql();
$result = Db::table($subQuery.' a')
->field('user_id, glucose,status, time, time_point')
->group('a.time_point')
->select();
return $result;
疑问
数据大于999999怎么办?
参考:https://blog.csdn.net/lglaljj123/article/details/79864188