Laravel汇总了雄辩的最大结果

时间:2018-05-06 20:03:20

标签: php mysql laravel eloquent

以下是我要做的事情:

我在vendor表中实现了一个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 :(得分:2)

这应该有效:

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

假设表名vendors