Ich habe eine Ergebnistabelle mit adm_no
, subject_id
, exam_id
und score
Feldern. Ich habe die Daten mit der Methode updateOrCreate
in Laravel 5.4 eingefügt.So geben Sie Daten mithilfe des Abfrage-Generators aus, während Duplikate entfernt werden
Wenn ich die Daten abrufen, bekomme ich immer noch Duplikate. z.B. Wenn ein Benutzer Markierungen für Instanz 2 Schüler für ein bestimmtes Thema einfügt und sie für die gleichen Schüler und das gleiche Thema wiederholt, sollte ich die letzte Zeile mit allen Ergebnissen erhalten. Hier
ist eine Probe meiner Anfrage:
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);
}
Sein nicht noch den letzten Wert Kommissionierung. Nehmen wir an, der erste Datensatz für adm_no: 1, subject_id: 1 und hatte eine Punktzahl von 35 und eine zweite Punktzahl für den gleichen Schüler und Fach war 40, wie kann ich 40 auswählen und 35 in meiner Abfrage ignorieren. –
Oh, das ändert die Frage ein wenig, versuchen Sie es [diese Frage] (http://stackoverflow.com/questions/1313120/retrieving-the-last-record-in-each-group) – Desh901