2017-10-16 5 views
0

Ich habe drei Tabellen im Zusammenhang mit articles und ich brauche article_id von ihnen mit staff_id ich habe.Laravel Datenbank Abfrageoptimierung

Ich verwende derzeit diese drei Abfrage.

$rejects = DB::table('rejected')->where('staff_id', $staff_id)->pluck('article_id'); 
    $missed = DB::table('missed')->where('staff_id', $staff_id)->pluck('article_id'); 
    $flagged = DB::table('flagged')->where('staff_id', $staff_id)->pluck('article_id'); 

und sie dann

$rejects = $rejects->toArray(); 
    $missed = $missed->toArray(); 
    $flagged = $flagged->toArray(); 

    $all = array_merge($rejects, $missed, $flagged); 

In der Produktion Zusammenführung meiner Datenbank in anderen Server sein wird, so dass ich die Anzahl der Abfrage zu reduzieren versuchen. Wie kann ich dieses Ergebnis mit nur einer DB-Abfrage erhalten.

+0

Haben Sie versucht, Join-Anweisungen zu verwenden? – hungrykoala

+0

mit verschiedenen Servern und verschiedenen Datenbanken ist es ohne spezielle Ausrüstung nicht möglich. – Amin

Antwort

0

Verwenden Sie Redewendungen von Laravel. Es ist wirklich sehr nützlich. Es wird die Anzahl der Abfragen auf eine bemerkenswerte Länge reduzieren, ohne sich um die Back-End-DB-Engine kümmern zu müssen. Referenz: https://laravel.com/docs/5.5/eloquent