2017-08-25 4 views
0

このrawsqlからクエリビルダをビルドするにはどうすればよいですか。rawsqlをクエリビルダに変換する方法

$sql = "SELECT * 
FROM users 
INNER JOIN votes ON user.id = votes.user_id 
WHERE 
    voting_date BETWEEN '$from_date' AND '$to_date'"; 
+0

このクエリの問題は何ですか? –

+1

まず、何かを試してみてください。あなたのためにコードを書くように頼むだけで、__badのアイデア__です。 –

+0

これまでにお試しいただいた内容をお見せしてください – dfour

答えて

0

のは、あなたが、あなた はこのような何かを試すことができ、テーブルのユーザーを持っているとしましょう。

$query = DB::table('users') 
->join('votes', 'users.id', '=', 'votes.user_id') 
->whereBetween('votes.voting_date', [$from_date, $to_date]) 
->get(); 
+0

ありがとうございました。 –

0
$votes = DB::table('users')->join('votes','users.id','=','votes.user_id') 
->whereBetween('voting_date',[$from_date,$to_date])->get(); 

//use db in your controller 
+0

先物提供者にとって便利な説明をお願いします – denny

0

あなたは簡単な使用この

$sql = "SELECT * 
FROM users 
INNER JOIN votes ON user.id = votes.user_id 
WHERE 
    voting_date BETWEEN '$from_date' AND '$to_date'"; 

、あなたはこれがあなたのための仕事かもしれ試してみてください単に

\DB::select(\DB::raw($sql)); 
0

でクエリを実行することができます。

$rsltUser = DB::table('users')->join('votes','votes.user_id','=','users.id') 
->whereBetween('voting_date',[$from_date,$to_date])->get(); 

・ホープあなたのためにこの作品!あなたはモデル内部の票との関係を定義した場合

User::whereBetween('voting_date',[$from_date,$to_date]) 
    ->join('votes','users.id','=','votes.user_id') 
    ->get(); 

それも良いでしょう:あなたはこれを行うことができUserモデルを定義した場合

+0

なぜあなたはインナーの代わりに左の結合を使用しますか? – denny

+1

ちょうど提案のために私の更新された答えを確認してください –

+0

今ok OKの左の結合はこの場合正しく動作しません。 – denny

0

。例:

$posts = Post::whereHas('comments', function ($query) { 
    $query->where('content', 'like', 'foo%'); 
})->get(); 
関連する問題