雄辩的选择最后一行的组


Eloquent select last row of group

我有以下表格:

id  name    factory
-------------------
1   apple   1
2   orange  2
3   banana  3
4   peach   1

我想选择按factory值分组的值,并按ID排序。因此,查询将返回橙子,香蕉和桃子(不含苹果)。

我已经试过了:

$data = Fruit::groupBy('factory')->distinct()->get();

但是它返回苹果、橙子和香蕉(而不是橙子、香蕉和桃子)

我也试过按ID升序排序,但结果是一样的,只是颠倒了。

是这样解决的:

$data = Fruit::whereRaw('id IN (select MAX(id) FROM fruits GROUP BY factory)')->get();