select('MAX(id) AS id') ->distinct('item_id') ->groupBy([ 'item_id' ]); $query = Moving::find() ->select( Moving::tableName() . '.*, ' . Models::tableName() . '.name AS model, ' . Locations::tableName() . '.name AS location, ' . Regions::tableName() . '.name AS region' ) ->joinWith([ 'items', 'models', 'types', 'status', 'regions', 'locations' ]) ->where([ 'in', Moving::tableName() . '.id', $subQuery ]) ->orderBy([ Regions::tableName() . '.name' => SORT_ASC, Locations::tableName() . '.name' => SORT_ASC, Status::tableName() . '.name' => SORT_ASC, Models::tableName() . '.name' => SORT_ASC, ]); $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); return $dataProvider; } }