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

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

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

Сообщение sparkey00 » 2019.07.09, 14:48

Здравствуйте!
У меня есть таблица в которой есть 4 поля
id, item_id, reason_id и date.
Как я могу написать в йии запрос который бы выбирал строки с определенным reason_id (например 3), но при этом возвращал бы только самую последнюю по дате запись для каждого item_id?

Аватара пользователя
yiijeka
Сообщения: 3060
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

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

Сообщение yiijeka » 2019.07.09, 15:01

А как бы вы сделали на чистом SQL это?

Аватара пользователя
leonenco
Сообщения: 125
Зарегистрирован: 2017.01.30, 22:42

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

Сообщение leonenco » 2019.07.11, 07:36

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

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

Model::find()->orderBy(['created_at' => SORT_DESC])->one();

CCCZen
Сообщения: 21
Зарегистрирован: 2018.04.01, 15:41

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

Сообщение CCCZen » 2019.07.13, 08:18

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

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


Ответить