use*_*594 5 php mysql laravel-4
我的控制器中有两个查询
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');
}
Run Code Online (Sandbox Code Playgroud)
如果我独立运行,它们运行良好。但是如果我同时运行两者,我会收到一个错误:1066 Not unique table/alias
我应该如何改变这个?
使用表别名( as)
第一个查询看起来像:
$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');
Run Code Online (Sandbox Code Playgroud)
第二个查询看起来像:
$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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11050 次 |
| 最近记录: |