使用laravel查询生成器排序分组项目

时间:2014-05-20 05:01:46

标签: mysql laravel-4

我有一张包含以下数据的表格

id    name     category_id
1      A           1
2      B           1
3      C           2
4      D           2

我已完成以下查询

DB::table('tablename')
                  ->select('id')
                  ->orderBy('id', 'desc')
                  ->groupBy('category_id')                                
                  ->get();

返回id 3和1,但我需要id 4和2 ......

请帮我找到解决方案

由于

3 个答案:

答案 0 :(得分:3)

使用以下code.hope,它将适合您。

DB::select( DB::raw('SELECT * FROM ( SELECT * FROM tablename ORDER BY tablename.id DESC ) t group by t.category_id order by t.id desc));

答案 1 :(得分:0)

我不知道Laravel,但以下SQL查询可能会对您有所帮助。

select max(id) from table_name 
group by category_id
order by id desc

将其转换为Laravel语法并使用。

答案 2 :(得分:0)

您需要selectRaw

DB::table('tablename')
      ->selectRaw('max(id)')
      ->orderBy('id', 'desc')
      ->groupBy('category_id')                                
      ->get();