请帮助我构建一个雄辩的查询。我有这张桌子:
Attendances
id | member_id
1 | 1
2 | 2
3 | 3
4 | 4
5 | 5
Members
id | name
1 | Joe
2 | Jane
3 | David
4 | May
5 | John
Positions
id | position_name
1 | art
2 | singer
3 | dancer
member_position
member_id | position_id
1 | 2
1 | 1
1 | 3
2 | 1
2 | 2
3 | 3
4 | 1
4 | 3
5 | 3
从“出勤”表中,我需要获取每个职位有多少服务员。
所需结果:
Art: 3 Singer: 2 Dancer: 4
提前谢谢!
答案 0 :(得分:0)
我使用以下代码设法获得了想要的结果:
$member_ids = Attendance::pluck('member_id');
$positions = Position::whereHas('members', function($query) use($member_ids){
return $query->whereIn('id', $member_ids);
})->get();
$datas = [];
foreach($positions as $position){
$position_id = $position->id;
$subdata = Attendance::whereHas('member.positions', function($query) use($position_id){
return $query->where('id', $position_id);
})->get();
$datas[] = ['position' => $position->position_name, 'count' => $subdata->count()];
}
return view('viewfile', compact('datas'));
并在我的刀片文件上:
@foreach($datas as $data)
<td>{{ $data['position'] }}</td>
<td>{{ $data['count'] }}</td>
@endofreach
希望这对以后的人有帮助。
(我只是回答了我的问题,因为似乎我无法删除它,对那些查看并没有发现有趣回答的人表示歉意)