Laravel совокупный красноречивый максимальный результат - PullRequest
0 голосов
/ 06 мая 2018

Вот что я пытаюсь сделать:

Я использую version_id в моей таблице поставщиков. Я пытаюсь построить запрос, чтобы заставить страницу индекса работать. Так что я ищу всех поставщиков из моей базы данных, которые имеют последнюю версию version_id (max ('version_id')). Не могу понять, как это сделать. Вот что у меня есть:

$vendors = $this->account->vendors()->where('version_id', max(version_id))

        ->orderBy($this->orderBy, $this->sortBy)
        ->paginate($this->display_per_page);

Я пробовал это раньше, но это также дает мне ошибки:

$vendors = $this->account->vendors()->max('version_id')

            ->orderBy($this->orderBy, $this->sortBy)
            ->paginate($this->display_per_page);

Это работает, если у меня просто есть это:

$vendors = $this->account->vendors()
            ->orderBy($this->orderBy, $this->sortBy)
            ->paginate($this->display_per_page);

Я смотрю в Интернете, но я нахожу предложения только для запросов с объединениями и тому подобным, а это не то, что я ищу. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 06 мая 2018

Это должно работать:

$vendors = $this->account->vendors()
    ->whereRaw('version_id = (SELECT MAX(version_id) from vendors)')
    ->orderBy($this->orderBy, $this->sortBy)
    ->paginate($this->display_per_page);

Предполагая имя таблицы vendors

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...