2017-06-29 7 views
0

テーブルpasien_polisからレコードを取得する場合は、polyclinic_idpolyclinicsテーブルのidと一致します。laravelの単一のwhere句に複数のクエリをラップする方法

私はこれを行うことによって、それを達成することができます

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

を私はフィルタリングする次のことは、私が今日だけ作成されたレコードを取得したい、created_atレコードです。 このクエリはうまく機能:私は、単一のwhere句の中に、これらの2つのフィルタを組み合わせることを望んでいたとき

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

問題が思い付きました。

私は次のことを試してみましたが、それは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

でも同じ結果が得られます。 idにこのpolyclinics.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(); 
関連する問題