雄辩地选择组的最后一行

2022-02-21 00:00:00 php mysql laravel eloquent

我有下表:

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();

相关文章