Laravel Query Builder:从每个组中获取一个项目

时间:2016-02-29 18:49:27

标签: php mysql sql laravel eloquent

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

|    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下操作它。

1 个答案:

答案 0 :(得分:1)

检查这是否是您要找的:

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

希望它有所帮助...