【发布时间】:2019-02-14 01:18:55
【问题描述】:
我在 Laravel 框架中使用了以下查询
$student_attendance_search_result = DB::table('tbl_student_attendance')
->join('tbl_student_admission', 'tbl_student_attendance.student_id', '=', 'tbl_student_admission.student_id')
->select(DB::raw('tbl_student_attendance.*,tbl_student_admission.student_id,tbl_student_admission.student_full_name_english,tbl_student_admission.class,tbl_student_admission.section,tbl_student_admission.roll_no, count(case when attendance_status ="Absent" then 1 end) as total_absent,count(case when attendance_status ="Present" then 1 end) as total_present,count(case when attendance_status ="Leave" then 1 end) as total_leave,count(distinct date) as total_class'))
->where('tbl_student_attendance.academic_year', $academic_year)
->where('tbl_student_admission.class', $classs)
->where('tbl_student_admission.section', $section)
->where('tbl_student_attendance.month', $month)
->groupBy('tbl_student_admission.student_id')
->get();
当我尝试运行它时抛出以下异常
SQLSTATE[42000]:语法错误或访问冲突:1055 'db_smsfinal1user.tbl_student_attendance.student_attendance_id' 不是 在 GROUP BY (SQL: 选择
tbl_student_attendance.*,tbl_student_admission.student_id,tbl_student_admission.student_full_name_english,tbl_student_admission.class,tbl_student_admission.section,tbl_student_admission.roll_no,计数(当出席状态时的情况 ="缺席" 然后 1 结束) 作为 total_absent,count(case 当出席状态 = "Present" 然后 1 结束) 作为 total_present,count(case 当出席状态=“离开”然后1结束)为 total_leave,count(distinct date) as total_class fromtbl_student_attendance内连接tbl_student_admissionontbl_student_attendance.student_id=tbl_student_admission.student_id在哪里tbl_student_attendance.academic_year= 2018 和tbl_student_admission.class= 2 和tbl_student_admission.section= 无和tbl_student_attendance.month= 九月分组tbl_student_admission.student_id)
知道我做错了什么吗?
【问题讨论】:
-
这个语法是SQL的标准,我想不需要转换吧?
-
在 laravel 中它不起作用