OrderBy fetches the latest data after groupBy in the YII2 framework

$query = COrder::find()->alias('co')
    ->leftJoin(CollagePGoods::tableName() . ' g', 'co.g_id = g.g_id')
    ->select('co.*,FROM_UNIXTIME(max(`co`.suat)) as max_time,g.info,g.img')
    ->where(['co.uid'=>$uid]);
if (!empty($params['cluster_type']) && $params['cluster_type'] != 100) {
    $query->andWhere(['co.user_type' => $params['cluster_type']]);
}
$query->andWhere(['co.stat' => $collage_sta]);
$query->andWhere(['co.deleted_at' => null]);
$query->groupBy('co.g_id');
if($order_by == 'su_at'){
    $query->orderBy(['max_time' => $order_by_type]);
}else{
    $query->orderBy(['co.'.$order_by => $order_by_type]);
}
//dd($query->getSql());
$pageNumber = $page - 1;
$totalCount = $query->count();
$pages      = new Pagination(['totalCount' => $totalCount, 'pageSize' => $pageSize]);
$pages->setPage($pageNumber);

$list       = $query->offset($pages->offset)->limit($pages->limit)->asArray()->all();

Guess you like

Origin blog.csdn.net/hechenhongbo/article/details/124603540