编程语言
首页 > 编程语言> > php-Laravel:1066不是唯一的表/别名

php-Laravel:1066不是唯一的表/别名

作者:互联网

我的控制器中有两个查询

if (isset($input['council']) && $input['council'] != '')
{
  $query = $query->join('suburb_near', 'titles.suburb', '=', 'suburb_near.suburb')
    ->select(array('titles.*', 'suburb_near.suburb' , 'suburb_near.council'))
    ->where('council', 'like', '%'. $input['council'].'%')
    ->orderBy('views', 'desc');
}
if (isset($input['country']) && $input['country'] != '')
{
  $query = $query->join('suburb_near', 'titles.suburb', '=', 'suburb_near.suburb')
    ->select(array('titles.*', 'a.suburb' , 'suburb_near.country'))
    ->where('country', 'like', '%'. $input['country'].'%')
    ->orderBy('views', 'desc');
}

如果我独立运行,则它们运行良好.但是,如果我一起运行,则会收到错误消息:
1066不是唯一的表/别名

我应该如何改变呢?

解决方法:

使用表别名(为)

第一个查询如下所示:

$query = $query
   ->join('suburb_near as suburb_near_one', 'titles.suburb', '=', 'suburb_near_one.suburb') 
   ->select(array('titles.*', 'suburb_near_one.suburb' , 'suburb_near_one.council'))
   // Edit after user3664594s comment 
   ->where('suburb_near_one.council', 'like', '%'. $input['council'].'%')
   ->orderBy('views', 'desc');

第二个查询如下所示:

$query = $query
    ->join('suburb_near as suburb_near_two', 'titles.suburb', '=', 'suburb_near_two.suburb')
    ->select(array('titles.*', 'a.suburb' , 'suburb_near_two.country'))
    // the rest of the query  

标签:laravel-4,mysql,php
来源: https://codeday.me/bug/20191121/2053454.html