2017-11-13 1 views
0

ich in Laravel bin neu 5, wie kann ich diese Abfrage konvertieren, dies zu Laravel ORMWie kann ich meine SQL-Abfrage konvertieren ORM Laravel

select m.nombre,c.fecha_control as primer_control, 
(select control.fecha_control 
    from control 
    where m.id = control.id_mascota 
    order by control.fecha_control 
    DESC limit 1) as ultimo_control 
from mascota m 
left join control as c on m.id = c.id_mascota 
GROUP BY m.nombre 

ich versuche, aber es hat nicht funktioniert ...

DB::table('mascota as m') 
     ->leftJoin('control as c','m.id','=','c.id_mascota') 
     ->select('m.nombre','c.fecha_control as primer_control', 
      \DB::raw('select control.fecha_control from control 
         where m.id = control.id_mascota 
         order by control.fecha_control 
         DESC limit 1 
         ) as ultimo_control')) 
     ->groupBy('m.id'); 

Danke

+0

Erwägen lernen eloquenten Beziehungen zuerst. https://laravel.com/docs/5.4/eloquent-relationships –

Antwort

0

Ich hatte nur Syntaxfehler, es funktioniert gut. es dauert 3 Stunden, um zu realisieren

DB::table("mascota as m") 
->leftJoin('control as c','m.id','=','c.id_mascota') 
->select('m.nombre','c.fecha_control as primer_control'), 
    DB::raw("(select control.fecha_control 
       from control 
       where m.id = control.id_mascota 
       order by control.fecha_control 
       DESC limit 1) as ult_control")) 
    ->groupBy('m.id'); 
Verwandte Themen