首页 > 解决方案 > Laravel:在不同的行中使用不同的 where 条件进行查询

问题描述

我有一个带有“配额”列的教室表,该列具有不同的值。一个班,有很多学生。如何在where每个学生总数的条件下显示教室数据row < "quota"?这是表:桌子

代码 :

Classroom::with('subject.teacher')->with('students')->whereHas('subject', fn ($query) => $query->where('grade', $grade))->withCount('students')->having('students_count', '<', 'quota');

当我使用此代码时,结果为空

当“拥有”被删除时,结果如下: 结果

想要的结果只显示 3 个教室

标签: laraveleloquentlaravel-8

解决方案


您可以使用hasDB::raw

// Simplified version
Classroom::has('students', '<=', DB::raw('classrooms.quota'))->get();

推荐阅读