我有一个存储用户购买历史记录的表:
表Purchases
:id
,user
,brand
,model
,color
,date
我想获得一个用户最新购买的列表,按品牌和型号分组。
以下是一个示例数据集:
1, Bob, Apple, iPhone 6, Gold, 2017-01-03
2, Bob, Apple, iPhone 6, Silver, 2017-01-09
3, Bob, Apple, iPhone 6, Gold, 2017-01-18
4, Bob, Samsung, Galaxy, Black, 2017-01-22
5, Bob, Samsung, Galaxy, Black, 2017-01-28
6, Jane, Apple, iPhone 6, Silver, 2017-01-18
7, Jane, Apple, iPhone 6, Silver, 2017-01-22
8, Jane, Samsung, Galaxy, White, 2017-01-28
我想检索显示如下的列表:
2, Bob, Apple, iPhone 6, Silver, 2017-01-09
3, Bob, Apple, iPhone 6, Gold, 2017-01-18
7, Jane, Apple, iPhone 6, Silver, 2017-01-22
8, Jane, Samsung, Galaxy, White, 2017-01-28
这样我就可以看到手机每个版本的最新购买日期。
我尝试了GROUP BY brand, model, color
,但是在不支持群组之前它没有返回最新的行(?)。
如果我能搞清楚,请告诉我。提前谢谢。
答案 0 :(得分:0)
试试这个
$date = array();
foreach ($purchase as $key => $row)
{
$date[$key] = $row['date'];
}
array_multisort($date, SORT_ASC, $purchase);
答案 1 :(得分:-1)
您可以使用laravel查询构建器
$purchases = DB::table('Purchases')
->groupBy('brand', 'model', 'color')
->orderBy('date', 'desc')
->get();