Php Laravel聚合雄辩的最大结果

Php Laravel聚合雄辩的最大结果,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,以下是我想做的: 我正在供应商表中实现一个版本id。我正在尝试构造一个查询以使索引页正常工作。因此,我希望从我的数据库中获取所有具有最新版本id(max(“version\u id”))的供应商。我似乎无法找到它。以下是我到目前为止得到的: $vendors = $this->account->vendors()->where('version_id', max(version_id)) ->orderBy($this->orderBy, $thi

以下是我想做的:

我正在供应商表中实现一个版本id。我正在尝试构造一个查询以使索引页正常工作。因此,我希望从我的数据库中获取所有具有最新版本id(max(“version\u 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);
我一直在网上寻找,但我只找到关于加入等查询的建议,这不是我想要的。非常感谢您的帮助!

这应该可以:

$vendors = $this->account->vendors()
    ->whereRaw('version_id = (SELECT MAX(version_id) from vendors)')
    ->orderBy($this->orderBy, $this->sortBy)
    ->paginate($this->display_per_page);
假设表名
供应商

这应该可以:

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

假设表名
供应商

我现在唯一的问题是只返回一条记录…我如何才能让它返回该特定供应商的最高版本id。在每个组中有这么多只返回最高id的供应商,您确定不只有一个供应商绑定到此特定帐户,并且具有最大
版本id
?这不应该限制结果的数量。因此,当我添加两个单独的记录,并且记录上的两个版本id都显示为1时,查询会给我多个结果。只要我编辑其中一个将版本id设置为2的记录,它只会给我版本id 2记录和显示1记录,我想我可能需要添加某种类型的供应商代码字段并对这些记录进行分组由供应商代码生成的结果,因此它为我提供了最大值(版本id)从供应商代码。想法?哦,好吧,我知道你现在需要什么。是的,我想你需要一些分组。我会想一想,现在没有解决方案。我现在唯一的问题是只返回一条记录…我如何使它返回特定供应商的最高版本id。那么多供应商只返回在每个组中使用最高id是否确实不只有一个供应商绑定到此特定帐户,并且具有最大
版本id
?这不应该限制结果的数量。因此,当我添加两个单独的记录,并且记录上的两个版本id都显示为1时,查询会给我多个结果。只要我编辑其中一个记录,将版本_id为2,它只给我版本id 2记录和显示1记录我认为我可能需要添加某种供应商代码字段,并按供应商代码对结果进行分组,以便它给我最大值(版本id)从供应商代码。想法?哦,好吧,我知道你现在需要什么了。是的,我想你需要一些分组。我会考虑一下,现在没有解决方案