【发布时间】:2017-05-11 02:24:09
【问题描述】:
这里是场景
表:用户
id | name | grade | subject
---- | ------|--------|------
1 | Mark | a | science
2 | Earl | a | english
3 | John | c | english
4 | Mike | d | science
5 | Matt | e | english
我想要做的是填充非重复或非重复成绩但仅适用于英语科目的成绩
所以它应该只是显示
c
e
我已经走了这么远
控制器:
$grades = user::select('grade', DB::raw('COUNT(grade) as gradecount'))
->where('subject', 'english')
->groupBy('grade')
->having('gradecount', '=',1)
->get();
刀片:
@foreach ($grades as $grade)
{{ $grade }}
@endforeach
但是,这个查询给出了这个
a
c
e
【问题讨论】:
-
尝试使用 where 子句,laravel.com/docs/5.2/queries#where-clauses
-
where('subject', '=', 'english')->get()
-
感谢 manian,但问题是“a”仍然存在。 'a' 应该在列表中。我希望 FIRST 获得所有成绩 = 1,然后是那些有主题 = 英语的人
-
此查询完全符合您的预期。我在我的 laravel 实例中对其进行了测试。 $grades = User::select('grade', \DB::raw('COUNT(grade) as gradecount')) ->where('subject', 'english') ->groupBy('grade') ->拥有('gradecount', 1) ->get();
标签: php mysql controller laravel-5.2