Как объединить несколько групп в одной таблице с другой таблицей в laravel

#laravel

#laravel

Вопрос:

business_id поддержано_by рекомендуемое_by одобрено_by
312 1 2 3
staff_id Имя адрес телефон
1 ХХХ гггг 158931478
2 aaa lll 158958936
3 ccc 12wee 154531478

Я хочу объединить столбцы supported_by, recommended_by и approved_by в первой таблице с идентификатором staff_id второй таблицы и хочу «выбрать» их имена. Как я могу это сделать?

Ответ №1:

# Расширенные предложения объединения

 $staffs = DB::table('businesses')
    ->select('staffs.name')
    ->join('staffs', function ($join) {
        $join->on('businesses.supported_by', '=', 'staffs.staff_id')
            ->orOn('businesses.reccomended_by', '=', 'staffs.staff_id')
            ->orOn('businesses.approved_by', '=', 'staffs.staff_id');
    })
    ->where('businesses.business_id', '=', 312)
    ->get();
 
 foreach ($staffs as $staff) {
    $staff->name
}