【问题标题】:How Can I Build Merge and Build Group Query on Laravel?如何在 Laravel 上构建合并和构建组查询?
【发布时间】:2018-04-22 14:25:18
【问题描述】:

现在我正在使用这个查询来显示下面的结果 查询:

 $data['faculty'] = Faculty::select('faculties.id', 'faculties.faculty', 'faculties.slug', 'faculties.status','s.semester','fs.faculty_id')
->join('faculty_semester as fs', 'faculties.id', '=', 'fs.faculty_id')
->join('semesters as s', 's.id', '=', 'fs.semester_id')
->orderBy('faculties.faculty', 'asc')
->get();

显示结果

1     BBA      FIRST SEM
2     BBA      SECOND SEM   
3     BBA      FOURTH SEM
4     BBA      THIRD SEM
5     BBS      SECOND YEAR
6     BBS      FIRST YEAR

但我想在群组中显示。 如何在 Laravel 上构建组查询以显示在结果下方

1     BBA      FIRST SEM, 
               SECOND SEM
               THIRD SEM
               FOURTH SEM
2     BBS      FIRST YEAR
               SECOND YEAR

【问题讨论】:

标签: php mysql sql laravel eloquent


【解决方案1】:

我建议使用预先加载,在模型中声明关系

https://laravel.com/docs/5.5/eloquent-relationships#eager-loading,所以你可以避免使用连接..

你试过了吗?

$data['faculty'] = Faculty::select('faculties.id', 'faculties.faculty', 'faculties.slug', 'faculties.status','s.semester','fs.faculty_id')
->join('faculty_semester as fs', 'faculties.id', '=', 'fs.faculty_id')
->join('semesters as s', 's.id', '=', 'fs.semester_id')
->groupBy('faculties.faculty')
->get();

【讨论】:

  • 是的,我尝试使用此代码,但显示以下错误“SQLSTATE[42000]:语法错误或访问冲突:1055 'collegeaccounting.faculties.id' 不在 GROUP BY 中(SQL:选择facultiesidfacultiesfacultyfacultiesslugfacultiesstatusssemesterfs。@ 987654334来自faculties @内连接faculty_semester作为fsfaculties.id=fs.faculty_id内连接semesters作为ss.fs.@97654346@.@978 @group by faculties.faculty) "
猜你喜欢
  • 2016-03-30
  • 2019-01-24
  • 2018-01-24
  • 2021-08-19
  • 1970-01-01
  • 2017-01-09
  • 2021-06-05
  • 2022-06-27
  • 2021-09-25
相关资源
最近更新 更多