在laravel功能中的group by类似于不同?

时间:2016-02-19 03:47:21

标签: laravel-5

我在'答案表'中的记录:

**id    question_id   answer**

  20      12          app/Http/routes.ph
  21      13          uri
  22      13          closure
  23      14          controller
  24      15          class name
  25      15          App\Http\Controllers
  26      16          for displayh

我的代码检索数据:

$qas= DB::table('answers')
         ->groupBy('question_id')
         ->get();
        dump($qas);
    }

我只获得5条记录而不是7条记录;其他2条记录在哪里? 它的作用类似于不同的功能,这不是我的意图。

如何编写代码以获取按'question_id'分组的所有7条记录?

3 个答案:

答案 0 :(得分:0)

理解GroupBy的概念,它的意思是,它会将相同的项目视为一个,例如14, 14-> 14 | 13,13-> 13如果你想得到所有答案,那么你必须写这个

DB::table('answers')->get();

<强>被修改

distinct和group by将在您的情况下执行相同的操作。 如果您可以更详细地解释您的问题,那么可能有解决方案。

答案 1 :(得分:0)

你说的是7行的结果,但那不是分组。也许你在谈论订购而不是分组?如果是这样,您需要使用->orderBy('question_id', 'asc'),这将为您提供7行,按question_id排序。

答案 2 :(得分:0)

在SQL中,当您需要以某种方式聚合结果(例如SUM或AVERAGE数据)时,GROUP BY子句非常有用。

您的情况不同,您不需要使用某些功能汇总数据,您只需要一个简单而扁平的结果列表以外的其他数据结构。

根据您的需要,您应该避免使用GROUP BY,并以编程方式对代码中的数据进行重新排序。