【问题标题】:Laravel Query Builder: Get one item from each groupLaravel 查询生成器:从每个组中获取一项
【发布时间】:2016-02-29 18:49:27
【问题描述】:

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

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

【问题讨论】:

  • 任何随机的都可以吗?您可以为此目的使用 TOP 1 运算符
  • 是的,任意随机。如何在 Eloquent 中使用 TOP 1?

标签: php mysql sql laravel eloquent


【解决方案1】:

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

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

希望对你有帮助...

【讨论】:

  • 由于某种原因它可以工作,它从每个组中获取一个。现在我很好奇,这是为什么呢?
猜你喜欢
  • 2017-10-15
  • 2016-11-07
  • 1970-01-01
  • 2019-09-25
  • 2015-11-20
  • 2023-04-06
  • 2016-01-03
  • 2017-05-22
  • 2020-11-20
相关资源
最近更新 更多