Laravel查询生成器:从每个组中获取一个项目


Laravel Query Builder: Get one item from each group

基本上我有一个迷你图书馆,里面有多本书,作者和到达日期。

|    Book    |   Author   |   Arrived   | For Sale | 
| ---------- | ---------- | ------------| -------- |
| HPotter V1 | Rowling    | 2010-01-01  | Yes      |
| HPotter V2 | Rowling    | 2010-02-01  | Yes      |
| S.Trek. V1 | Anonymous  | 2010-01-01  | No       |
| LotR. V1   | Tolkien    | 2010-02-01  | Yes      |
| LotR. V2   | Tolkien    | 2010-03-01  | Yes      |
| LotR. V3   | Tolkien    | 2010-04-01  | Yes      |
| LotR. V4   | Tolkien    | 2010-05-01  | Yes      |
| 50Shad. V1 | Satan      | 2010-06-01  | No       |
| Twilight 1 | Satan      | 2010-07-01  | No       |

基本上,我只需要为一组到达日期获得一本书出售。这意味着,我必须在这些日期中的每一个日期买一本书:

  • 2010年01月01日
  • 2010年02月01
  • 2010年03月01
  • 2010年04月01
  • 2010年05月01

最后两本书不出售,所以不应该选择它们——我知道可以用一个简单的->where('For Sale', 'Yes')过滤它。

主要思想是将所有内容推送到数据库,而不是获取整个列表(它有点大)并在 Laravel 下对其进行操作。

检查这是否是您要查找的内容:

Book::where('For Sale', 'Yes')->groupBy('Arrived')->get();

希望对你有帮助...