2017-10-16 115 views
0

我有三個表與articles相關,我需要從staff_id我得到article_idLaravel數據庫查詢優化

我目前正在使用這三個查詢。

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

在生產中我的數據庫將在不同的服務器上,所以我試圖減少無查詢。 我怎樣才能得到這個結果只使用一個數據庫查詢。

+0

您是否嘗試過使用連接語句? – hungrykoala

+0

不同的服務器和不同的數據庫,這是不可能的,沒有特殊的設備。 – Amin

回答

0

使用Laravel的Eloquents。它非常有用。它會將查詢數量減少到非常長的時間,並且不用擔心後端數據庫引擎的問題。 參考:https://laravel.com/docs/5.5/eloquent