Выборка из базы только самых новых записей для каждого ID

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
sparkey00
Сообщения: 1
Зарегистрирован: 2019.07.09, 14:41

Выборка из базы только самых новых записей для каждого ID

Сообщение sparkey00 »

Здравствуйте!
У меня есть таблица в которой есть 4 поля
id, item_id, reason_id и date.
Как я могу написать в йии запрос который бы выбирал строки с определенным reason_id (например 3), но при этом возвращал бы только самую последнюю по дате запись для каждого item_id?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Выборка из базы только самых новых записей для каждого ID

Сообщение yiijeka »

А как бы вы сделали на чистом SQL это?
Аватара пользователя
leonenco
Сообщения: 155
Зарегистрирован: 2017.01.30, 22:42

Re: Выборка из базы только самых новых записей для каждого ID

Сообщение leonenco »

Я думаю это вам поможет

Код: Выделить всё

Model::find()->orderBy(['created_at' => SORT_DESC])->one();
CCCZen
Сообщения: 21
Зарегистрирован: 2018.04.01, 15:41

Re: Выборка из базы только самых новых записей для каждого ID

Сообщение CCCZen »

Код: Выделить всё

	$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();

Ответить