我有求职者表和职称表, 在职称表中
id job_title_key description
1 001 sales
2 002 programmer
并在求职者表中
id jobseeker_name desire_position_1 desire_position_2
1 Sam 001 002
2 Smith 002 002
当我查询使用范围过滤
时
public function scopeSearch($query, $request) {
if($request->desire_position_1 != '') {
$query->join('job_titles','jobseekers.desire_position_1','=','job_titles.job_title_key');
}
if($request->desire_position_2!='') {
$query->join('job_titles','jobseekers.desire_position_2','=','job_titles.job_title_key');
}
if ($request->desire_position_1!='') {
$exp_2 = explode(',', $request->desire_position_1);
$query->where('job_titles.description',$exp_2);
}
if ($request->desire_position_2!='') {
$exp_3= explode(',', $request->desire_position_2);
$query->where('job_titles.description',$exp_3);
}
}
任何人都有这个解决方案的想法吗?
答案 0 :(得分:0)
您使用相同的别名加入表格两次:$query->join('job_titles', ...)
。
使用不同的别名,它应该有用。
答案 1 :(得分:0)
我解决了以下查询发布的问题,
public function scopeSearch($query, $request)
{
if($request->desire_position_1!=''){
$query->join('job_titles','jobseekers.desire_position_1','=','job_titles.job_title_key');
}
if($request->desire_position_2!=''){
$query->join('job_titles as job_titles_ds2','jobseekers.desire_position_2','=','job_titles.job_title_key');
}
if ($request->desire_position_1!='') {
$exp_2 = explode(',', $request->desire_position_1);
$query->where('job_titles.description',$exp_2);
}
if ($request->desire_position_2!='') {
$exp_3= explode(',', $request->desire_position_2);
$query->where('job_titles_ds2.description',$exp_3);
}
return $query->select('jobseekers.*');
}