2016-07-05 69 views
1

我想加入一个表本身,但不断收到错误。这是我目前的代码。我也尝试过Raw语句。目前不知道该走哪个方向。雄辩 - 连接表本身

我的代码:

$Calle = db('VoipBill') 
        ->table('billing') 
        ->join('billing', 'billing.srcnum', '=', 'billing.dstnum') 
        ->where('acct_name', '100080_company') 
        ->where('srcnum', $call->srcnum) 
        ->whereBetween('calldate', [$set_time_lower, $set_time_upper]) 
        ->get(); 

这是错误:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'billing' (SQL: select * from billing inner join billing on billing . srcnum = billing . dstnum where acct_name = 100080_company and srcnum = +27******** and calldate between 2016-05-02 09:19:27 and 2016-05-02 09:19:37)

回答

3

你有别名的表。试试看吧:

$Calle = db('VoipBill') 
     ->table('billing as bsrc') 
     ->join('billing as bdst', 'bsrc.srcnum', '=', 'bdst.dstnum') 
     ->where('bsrc.acct_name', '100080_company') 
     ->where('bsrc.srcnum', $call->srcnum) 
     ->whereBetween('bsrc.calldate', [$set_time_lower, $set_time_upper]) 
     ->get();