2017-06-29 34 views
0

條款我想從一個表pasien_polis其中polyclinic_idpolyclinics表的id匹配提取記錄。如何包裝複式查詢到一個單一的其中laravel

我可以這樣做到這一點:

$polyclinic = Polyclinic::findOrFail($id); 
    $pasienpoli = Polyclinic::find($id)->PasienPoli; 

我要過濾的下一件事就是created_at記錄,我只希望獲取今天創建的記錄。 這個查詢工作良好:

$pasienpoli = DB::table('pasien_polis')->whereDate('created_at', '=', \Carbon\Carbon::today()->toDateString())->get(); 

問題就來了,當我想這兩個過濾器where子句合併成一個。

我曾嘗試以下,但它返回NULL

$polyclinic = Polyclinic::findOrFail($id); 
$match = Polyclinic::find($id)->PasienPoli; 

$pasienpoli = DB::table('pasien_polis')->where([ 
        ['polyclinic_id', '=', '$match'], 
        ['created_at', '=', \Carbon\Carbon::today()->toDateString()] 
               ])->get(); 

任何幫助嗎?

UPDATE:

STRUCTURE OF <code>pasien_polis</code>

STRUCTURE OF <code>polyclinics</code>

+0

請出示兩個表 –

+0

我已經更新了帖子和張貼的表結構(pasien_polis,綜合診所)你的表結構。 @AddWebSolutionPvtLtd –

回答

1

我想你可以試試這個:

$pasienpoli = DB::table('pasien_polis') 
         ->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id') 
         ->where([ 
         ['pasien_polis.polyclinic_id', '=', $id], 
         ['pasien_polis.created_at', '=', \Carbon\Carbon::today()->toDateString()]]) 
         ->get(); 

希望這有助於爲您服務!

+0

仍然會得到相同的結果。我試圖將此polyclinics.id更改爲ID,我得到了mysql錯誤。在aptana它說的語法錯誤,但我認爲這不是真正的問題。我覺得我已經正確地設定了這些評價,但仍然沒有得到正確的工作。 –

+0

我接受了這個答案,因爲我通過修改這個答案來解決問題。非常感謝你。 –

0

通過修改@AddWeb Solution Pvt的答案解決(感謝一堆)。
這裏是我最後的工作查詢:

$pasienpoli = DB::table('pasien_polis') 
    ->join('polyclinics','polyclinics.id','=','pasien_polis.polyclinic_id') 
    ->where([ 
    ['pasien_polis.polyclinic_id', '=', $id], 
    [DB::raw('DATE(pasien_polis.created_at)'), '=', \Carbon\Carbon::today()->toDateString()] 
    ])->get(); 
相關問題