2017-11-29 2 views
0

Laravelモデルで2つのテーブルを結合する必要があります。ここに私のクエリは、Laravel 5.4 2つのテーブルを結合するときのエラー

$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(); 
関連する問題