2016-07-29 5 views
1

Laravel 5に2つのテーブルがあり、クエリビルダを使用する必要があります。私はすでにそれのSQLを持っているが、私はそれをクエリビルダの構文に変換することができません。 SQLは、これはLaravel5のクエリビルダへのネイティブSQL

SELECT COUNT(A.cid) FROM `A` WHERE A.cid IN (SELECT `id` FROM `B` WHERE `create_user`='$name') AND `access_time` BETWEEN '$start_data' AND '$end_data' 

私はこのようないくつかの構文

DB::table('A') 
     ->join('B', function ($join) { 
      $join->on('A.id', '=', 'B.cid'); 
     }) 
     ->get(); 

を使用する場合、それはどのように私は、クエリビルダに「IN」のようなネイティブSQLを回すことができるので、エラーだ、感謝

+0

通常のエラーメッセージを投稿すると、他の人を助けます) –

答えて

0

は、クエリの下には試してみて、解像度を見てULT:

$result= DB::table('a') 
      ->select(DB::raw('COUNT(a.cid) as total_cid')) 
      ->join('b', 'a.cid', '=', 'b.id') 
      ->where('b.create_user', $name) 
      ->whereBetween('a.access_time', [$start_data, $end_data]) 
      ->first(); 

それともINため、INを使用する方法を尋ねた質問には、この

$result= DB::table('a') 
      ->join('b', 'a.cid', '=', 'b.id') 
      ->where('b.create_user', $name) 
      ->whereBetween('a.access_time', [$start_data, $end_data]) 
      ->count(); 

を試すには、このような何かを試してください: -

$result= DB::table('a')->whereIn('cid', [1,2,3,4]); 
+0

2番目の方法は結果を得ることができます –

0

ですjoins in Laravel 5.2の構文:

$result= DB::table('a') 
      ->join('b', 'a.id', '=', 'b.cid') 
      ->select('a.cid') 
      ->where('A.cid', 'like', '%string%') //optional like 
      ->get(); 
関連する問題