ITKEE社区V3.0.1版本更新,补丁包下载了解详情 , 获取ITKEE社区版本,快速授权了解详情
近期做一个开发功能,需求详情如下:
话题推荐展示,由话题评分高低来推选前5最高评分话题
那么则涉及问题有话题评分功能:创建评分记录表,记录话题ID,评分Star,评分人信息...(附加字段的等)
话题推荐页面数据查询处理
实现逻辑,需要根据每一个话题评分平均值来获取前五个话题数据
SQL语句:SELECT `id`,'topic_id',sum(star) as count_star,avg(star) as avg_star FROM `itkee_star`
GROUP BY `topic_id` ORDER BY avg_star desc
Thinkphp5链式查询代码如下:Db::name('star')->field('id,topic_id,sum(star) as count_star,avg(star) as avg_star')->group('topic_id')->order('avg_star desc')->select();
以上代码并没有进行Limit处理,可以根据需要自行操作limit条数
则可以查询出来topic_id 对应的N个话题ID值,根据topic_id可以做关联查询等相关操作