2017-10-16 10 views
0

私はarticlesに関連する3つのテーブルがあり、staff_idを使用してarticle_idを取得する必要があります。Laravelデータベースクエリの最適化

私は現在、これらの3つのクエリを使用しています。

$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'); 

、その後、私は、クエリのノーを削減しようとしていますので、私のデータベースが別のサーバーになりますそれらを製造する際に

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

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

をマージします。 1つのdbクエリのみを使用してこの結果を取得するにはどうすればよいですか。

+0

joinステートメントを試しましたか? – hungrykoala

+0

異なるサーバーと異なるデータベースでは、特別な装置なしでは不可能です。 – Amin

答えて

0

Eraquents by Laravelを使用してください。それは本当に非常に便利です。これは、クエリの数を驚異的な長さに減らし、バックエンドDBエンジンについての心配もなくなります。 リファレンス:https://laravel.com/docs/5.5/eloquent