2017-11-29 4 views
0

Laravel 모델에서 두 테이블을 조인해야합니다. 여기 내 검색어입니다Laravel 5.4 두 테이블 조인시 오류

$id="1002"; 
$resultsInCalls = DB::table('qlog') 
    ->select('user_master.fname','user_master.lname','qlog.data2') 
    ->whereDate('created', '=', date('Y-m-d')) // this day 

    ->join('qlog', 'qlog.agent', '=', 'user_master.sip_id') 
    ->where('agent', '=', $id) 
    ->where(function ($query) { 
     $query->where('event', '=', 'COMPLETEAGENT') 
      ->orWhere('event', '=', 'COMPLETECALLER'); 
     }) 
    ->take(5) 
    ->get(); 

하지만 다음과 같은 오류가 발생합니다.

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'qlog' (SQL: select `user_master`.`fname`, `user_master`.`lname`, `qlog`.`data2` from `qlog` inner join `qlog` on `qlog`.`agent` = `user_master`.`sip_id` where date(`created`) = 2017-11-29 and `agent` = 1002 and (`event` = COMPLETEAGENT or `event` = COMPLETECALLER) limit 5) 

관련 질문이 있습니다. 그러나 나는 그것을 알아낼 수 없다. 이 오류를 수정하는 방법. 여기

+0

당신은 user_master''에 가입해야합니다,하지만 당신은이 작업을 수행하지 않습니다. –

+0

감사합니다. –

답변

1

나는 그것이 끝낼,

$resultsInCalls = DB::table('qlog') 
     ->join('user_master as user_table', 'qlog.agent', '=', 'user_table.sip_id') 
     ->select('user_table.fname','user_table.lname','qlog.data2') 
     ->whereDate('created', '=', date('Y-m-d')) // this day 
     ->where('agent', '=', $id) 
     ->where(function ($query) { 
      $query->where('event', '=', 'COMPLETEAGENT') 
       ->orWhere('event', '=', 'COMPLETECALLER'); 
      }) 
     ->take(5) 
     ->get();