2016-04-24 14 views
1

Ich führe eine Abfrage auf mehrere Tabelle, und ich möchte es auf 5 Ergebnisse beschränken, aber es gibt mir unten Fehler.Begrenzen DB :: Abfrage auf mehrere Tabellen in Laravel

$projects = DB::query("select * from project, project_budget,user 
        where prj_id=pb_prj_id 
        and prj_usr_id=usr_id 
        and prj_status = 'open' 
        and prj_expiry>'".date("Y-m-d H:i:s")."' 
        order by prj_updated_date desc")->take(5)->get(); 

SQLSTATE [HY000]: Allgemeiner Fehler: 1096 Keine Tabellen (SQL: select * Limit 5)

+1

Sie nicht vergessen, dass (http://stackoverflow.com/questions/27380060/using-laravel-raw-query-with-placeholder) [Laravel Platzhalter hat] zu machen, was Sie tun sicherer. – tadman

+1

Wenn Sie 'DB :: query' verwenden müssen, dann sollte es eine rohe Abfrage sein, so dass das' limit5' in der 'query' als' order by prj_updated_date desc limit 5' stehen sollte –

Antwort

0

ich mithilfe von Query Builder gelöst.

$projectExpiry = date("Y-m-d H:i:s"); 
$projects =  DB::table('project') 
       ->join('project_budget', 'project.prj_id', '=', 'project_budget.pb_prj_id') 
       ->join('users', 'project.prj_usr_id', '=', 'users.prj_usr_id') 
       ->where('prj_status', '=' , 'open') 
       ->where('prj_expiry', '<' , $projectExpiry) 
       ->orderBy('prj_updated_date', 'desc') 
       ->take(5)->get(); 
Verwandte Themen