Здравствуйте!
У меня есть таблица в которой есть 4 поля
id, item_id, reason_id и date.
Как я могу написать в йии запрос который бы выбирал строки с определенным reason_id (например 3), но при этом возвращал бы только самую последнюю по дате запись для каждого item_id?
Выборка из базы только самых новых записей для каждого ID
Re: Выборка из базы только самых новых записей для каждого ID
А как бы вы сделали на чистом SQL это?
Re: Выборка из базы только самых новых записей для каждого ID
Я думаю это вам поможет
Код: Выделить всё
Model::find()->orderBy(['created_at' => SORT_DESC])->one();
Re: Выборка из базы только самых новых записей для каждого ID
Код: Выделить всё
$items = ( new Query() )
->from( [
'temp' => TABLE::find()->andWhere( [
'not',
[ 'date' => null ]
] )->andFilterWhere(['reason_id'=>3])
->orderBy( 'date DESC' )
] )->groupBy( 'item_id' )->orderBy( 'date DESC' )->all();