@volodyalesha86

Как можно получить данные Eloquent запросом из базы только последних данных?

Всем привет!

Как можно получить данные Eloquent запросом из базы только последних данных?
Необходимо отсеять из запроса данные которые дублируются но старее по дате.

Например, имеем данные:
id name marker num created_at
1 Test1 root 100 2021-03-18
2 Test2 user 100 2021-03-18
3 Test2 user 120 2021-03-21
4 Test3 guest 100 2021-03-22

А необходимо получить:
id name marker num created_at
1 Test1 root 100 2021-03-18
3 Test2 user 120 2021-03-21
4 Test3 guest 100 2021-03-22
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Конкретно твой запрос «желательно красивый без DB» сделать невозможно.

\DB::query()
    ->from((new Name())->getTable(), 't')
    ->where('created_at', '=', function ($q) {
        $q
            ->from((new Name())->getTable(), 't2')
            ->selectRaw('MAX(t2.created_at)')
            ->whereRaw('t2.name = t.name')
            ->whereRaw('t2.marker = t.marker');
    })
    ->get();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы