2017-04-13 2 views
1
id sm_id to_id 
1 3  2 
2 4  1 
3 3  3 
4 3  2 
5 3  3 
6 4  1 

to_idsm_id의 발생 횟수를 계산하려면 어떻게합니까?laravel을 사용하여 두 테이블 비교 및 ​​계산

두 개의 입력이 있는데, 첫 번째는 sm_id이고 두 번째는 to_id입니다. 입력 값을 기준으로 값의 출현을 계산하고 싶습니다.

sm_id = 4 and to_id = 1에 대한

예상 결과는 다음 여기에

2 내가이 시도

$us = \DB::table('mgs') 
       ->where('sm_id', '=', DB::raw('to_id')) 
     ->where('to_id', '=', DB::raw('sm_id')) 
       ->groupBy('sm_id') 
       ->count(); 

     print_r($us);die; 

답변

2

당신이 주어진 sm_idto_id에 얼마나 많은 메시지를 계산하려면 이 표에서 :

\DB::table('msg')->where('sm_id', $smId)->where('to_id', $toId)->count(); 
+0

어리석은 질문 감사합니다. @alexey –

+0

도움이 되셨 다행입니다. –

0

을 시도 코드입니다 :

$us = \DB::table('mgs') 
      ->where('sm_id', '=', DB::raw('to_id')) 
      ->where('to_id', '=', DB::raw('sm_id')) 
      ->groupBy('sm_id', 'to_id') 
      ->count('sm_id', 'to_id'); 

print_r($us);die; 
-1

당신은 당신이 그래서 SQL 주입의 처리됩니다 Laravel query builder를 사용으로 DB::raw을 사용할 필요가없는 다음 입력으로 $sm_id$to_id있는 경우 :

$us = \DB::table('mgs')->where(['sm_id'=>$sm_id,'to_id'=>$to_id])->count(); 
dd($us); 

dd()이 laravel의 방법을하는 의 약어이며이므로 print_rdie을 따로 사용할 필요가 없습니다.

추신. 귀하의 스크립트에서 \DB을 (를) 사용했지만, 대신 Illuminate\Support\Facades\DB을 사용하는 것이 좋습니다.

+0

부정 투표에 대한 의견을 남겨주세요. – Learner