我有一个结果表,其中有adm_no
,subject_id
,exam_id
和score
字段。我在laravel 5.4中使用updateOrCreate
方法插入数据。
当我获取数据时,我仍然会得到重复数据。例如当用户为给定主题插入例如2名学生的标记并为同一学生和主题重复时,我应该获得所有结果的最新一行。
以下是我的查询示例:
public function searchStudent()
{
$exam = Exam::all();
$term = Term::all();
$a = Input::get('adm_no');
$e = Input::get('exam_id');
$t = Input::get('term_id');
$y = Input::get('year');
$results = DB::table('results')
->select(DB::raw('DISTINCT(subject_id)'))
->where('adm_no', 'LIKE', '%' . $a . '%')
->where('exam_id','LIKE', '%' . $e . '%')
->where('term_id', 'LIKE', '%' . $t . '%')
->where('year', 'LIKE', '%' . $y . '%')
->orderBy('created_at', 'desc')
->get();
dd($results);
}
答案 0 :(得分:0)
尝试以下查询:
{(2, 3, 7, 8), (1, 3), (4, 6), (4, 8), (1, 2, 3), (1, 6), (7, 8), (1, 6, 8), (3, 5)}
答案 1 :(得分:0)
我对这个问题进行了更多的研究,这就是我为我工作的原因。
<强>问题强>
public function searchStudent(){
$a= Input::get( 'adm_no' );
$e= Input::get( 'exam_id' );
$t= Input::get( 'term_id' );
$y= Input::get( 'year' );
$results=DB::table('results')->distinct('subject_id')
->where( 'adm_no', $a)
->where( 'exam_id', $e)
->where( 'term_id',$t)
->where( 'year',$y)
->groupBy('subject_id')
->latest('subject_id')
->get();
dd($results);
}