为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Laravel Eloquent 中使用 GroupBy 和 Where 子句?

如何在 Laravel Eloquent 中使用 GroupBy 和 Where 子句?

PHP
炎炎设计 2023-04-15 17:01:09
请尝试使用 Laravel 中的 GroupBy 和 Where 子句从数据库中的连接表中检索数据。如果我添加groupBy. 它在没有 GroupBy 的情况下工作,但我想在检索后对数据进行排序。这就是我所拥有的,有人应该帮助我public function showResult($std_id){    $results = DB::table('students')        ->select('*')        ->join('results', 'students.std_id', 'results.student_results_id')        ->where('student_results_id', $std_id)        ->groupBy('results.academic_year')        ->get();    $studentprofilePage = Student::find($std_id);    if (empty($studentprofilePage)) {        return redirect('/user');    }    return view('resultsdisplay', [        'results' => $results,        'studentresultsprofile' => $studentprofilePage,    ]);}我收到这个错误Syntax error or access violation: 1055 'smgt.students.std_id' isn't in GROUP BY (SQL: select * from `students` inner join `results` on `students`.`std_id` = `results`.`student_results_id` where `student_results_id` = 4662416 group by `results`.`academic_year`)
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

实际上,我从代码中了解到,您需要按学年对结果进行分组,然后将其加入到学生表中。所以我建议


DB::table('students')

                  ->select('*')

                  ->join('results', function ($join) {

                       $join->on('students.std_id', '=', 'results.student_results_id')->groupBy('results.academic_year'); 

                   })

                  ->where('student_results_id', $std_id)

                  ->get();


像这样的东西。


查看完整回答
反对 回复 2023-04-15
?
DIEA

TA贡献1820条经验 获得超2个赞

要建立在mohammad.kaab答案之上,您应该能够使用Student模型来构建此查询,从而使您的代码更清晰。我还建议使用 Laravel 的类型提示,showResult(Student $student)Laravel 将Student在后台为您获取,如果未找到学生,则返回 404。


所以你应该能够做类似于下面的事情:


public function showResult(Student $student)

{

    $results = $student->results()

            ->groupBy('results.academic_year');  

            ->get(); 


    return view('resultsdisplay', [

        'results' => $results,

        'studentresultsprofile' => $student,

    ]);

}


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信