如何以雄辩的形式在下面的查询中编写内容。雄辩的使用2表关系似乎不错,但是使用4表关系和group_concat则不能正常工作。下面的代码工作正常,只需要知道如何以雄辩的格式实现下面的代码即可。
关系像这样
表格>列:
夫人> ID,姓名
mr_regions> id,mrs_id(mrs表),regions_id(regions表)
地区> id,名称,headquaters_id(headquaters表)
总部> id,名称
DB::table('mrs as m')
->select(
'm.id',
'first_name',
'last_name',
'email',
'designation',
'mobile_number',
DB::raw('GROUP_CONCAT(DISTINCT r.name SEPARATOR ", ") AS regions'),
DB::raw('GROUP_CONCAT(DISTINCT h.name SEPARATOR ", ") AS headquaters')
)
->join('mr_regions AS mr', function($join){
$join->on('mr.mrs_id', '=', 'm.id');
$join->on('mr.is_active', '=', DB::raw(Config('constants.STATUS_ACTIVE')));
})
->join('regions AS r', function($join){
$join->on('r.id', '=', 'mr.mrs_id');
$join->on('mr.is_active', '=', DB::raw(Config('constants.STATUS_ACTIVE')));
})
->join('headquaters AS h', function($join){
$join->on('h.id', '=', 'r.headquaters_id');
$join->on('h.is_active', '=', DB::raw(Config('constants.STATUS_ACTIVE')));
})
->where(function($where) use ($id){
$where->where('m.is_active', Config('constants.STATUS_ACTIVE'));
$where->where('m.id', '=', $id);
})
->groupby('m.id')
->first();