2016-02-29 52 views
0

基本上,我有一个包含多本书籍,作者和到达日期的迷你图书馆。Laravel查询生成器:从每个组中获取一个项目

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

+0

任何随机的一个会做什么?您可以为此使用TOP 1运营商 – Chendur

+0

是的,任何随机的。如何在口头禅中使用TOP 1? – DarkGhostHunter

回答

1

检查,如果这是你在找什么:

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

希望它可以帮助...

+0

由于某种原因,它可以从每个组中获得一个。现在我很好奇,为什么呢? – DarkGhostHunter

+0

这是我朋友的另一个好问题! :) – Laerte