简体   繁体   English

连接两个表时出现Laravel 5.4错误

[英]Laravel 5.4 Error when Joining two tables

I need to join two tables in laravel model. 我需要在laravel模型中加入两个表。 Here is my query, 这是我的查询

 $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();  

But I run this query I get following error. 但是我运行此查询时出现以下错误。

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) 

I read related questions. 我读了相关的问题。 But I can't figure it out. 但我不知道。 How to fix this error. 如何解决此错误。

Here I get it done, 我完成了

 $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();  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM