Thinkphp数据查询group分组如何取每组的最新记录
2015-03-02 22:50
405 查看
本人用ThinkPHP3.2,今天正在开发一个需要分组显示的功能,可是从数据库中把相应数据读取后直接用group分组,结果每组显示的是最老的记录,我的需求是要显示每组的最新记录。在网上大搜一翻后,未果,本人决定自行研究,现将方法记录于此以防遗忘。
其实很简单,以供就两步:
第一步:
将符合条件的数据全部取出,暂不用group分组,作为子查询:(不懂子查询的请参考http://document.thinkphp.cn/manual_3_2.html#sub_query)
$subQuery = $model->field('id,name')->table('tablename')->where($where)->order('time desc')->select(false);
第二部:
利用子查询进行查询分组
$model->table($subQuery.' a')->group('field')->select();<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
好了,思路就是这样。希望对大家有帮助!
其实很简单,以供就两步:
第一步:
将符合条件的数据全部取出,暂不用group分组,作为子查询:(不懂子查询的请参考http://document.thinkphp.cn/manual_3_2.html#sub_query)
$subQuery = $model->field('id,name')->table('tablename')->where($where)->order('time desc')->select(false);
第二部:
利用子查询进行查询分组
$model->table($subQuery.' a')->group('field')->select();<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
好了,思路就是这样。希望对大家有帮助!
相关文章推荐
- 查询每组数据中最新月份的记录
- mysql查询获取分组后最新的一条记录,策略:先排序,然后在次分组查询(默认第一条),就是最新的一条数据了
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- group_concat+case when实现分组查询中,返回每组的特定数据
- MySQL 查询分页数据中分组后取每组的前N条记录
- oracle多表分组查询,每组拿出最新一条数据
- mysql5.7分组查询group by,分组查询并且显示每组时间最新的一条记录
- mysql 分组查询数据时,如何获得用于分页的总记录数?
- 【记录】T-SQL 分组排序中取出最新数据
- 查询分组数据指行条件满足的行的上一条记录的技巧
- row_number和partition by分组取top数据,每组查询前N条
- row_number和partition by分组取top数据,每组查询前N条
- 如何查询数据表中各个设备最后一次出现的记录?
- 数据记录的操作(insert,select,update,delete)函数和分组查询(group by),表连接(join on),嵌套查询(in)
- Oracle数据分组后取每组的一条记录
- linq 分组 ,每组取时间最新的记录
- ORACLE学习之旅——分组取每组数据中最近的一条记录
- MySql如何分级查询上千万行记录的表,并将该大数据显示到界面中
- 对多数据进行分组排序后取每组第一条记录
- sql 分组查询中每组中某列的各行字符数据相加显示