#php #laravel #search #matching
#php #laravel #Поиск #сопоставление
Вопрос:
В настоящее время я пытаюсь реализовать поиск данных из нескольких таблиц в моей базе данных mysql.
Данные таблицы образования — это CSE
, HSC
Diploma
а данные таблицы JobCircular — это BSc in CSE
.
теперь я пытаюсь найти соответствие CSE
мой код
$profileId = Auth::guard('company')->user()->id;
$user_id = Applyer::
where('com_id','=',$profileId)
->where('circular_id','=',$id)
->pluck('user_id')[0];
$examination = Education::selectRaw('subject')->where('user_id','=',$user_id)->orderBy('id','desc')->get();
foreach ($examination as $exam => $sub) {
$exam_list = JobCircular::where('education_requirements','LIKE', "%
{$sub}%")->get();
}
echo "<pre>";
print_r([$exam_list]);
когда требования к циклическому образованию BSc
вводятся CSE
, я ожидаю, что результатом будут данные таблицы образования CSE
Ответ №1:
$needed_exam_ids = [ ];
$examination =
Education::where('user_id','=',$user_id)-
>orderBy('id','desc')->get();
Foreach ($examination as $data) {
$exam_list =
JobCircular::where('education_requirements','LIKE', "%
{$data->subject}%")->count();
if($count > 0)
{
// get exam id if 'cse' exist
array_push($needed_exam_ids,$data->id);
}
}
// the result you want.
$education_data = Education::whereIn('id',$needed_exam_ids)->get();