我希望显示每个记录的平均评分和记录,而foreach
循环没有评分。我的问题是我的代码只显示有评级的记录。以下是我的代码。
$packages = DB::table('packages')
->join('comments', function($join){
$join->on('comments.package_id', '=', 'packages.package_id');
})
->join('agents', function($join){
$join->on('packages.agent_id', '=', 'agents.id');
})
->select('comments.*', 'packages.*', 'agents.fname', 'agents.lname', 'agents.photo as agent_photo',
DB::raw('AVG(rating) as ratings_average'))
->groupBy('comments.package_id')
->orderBy('packages.created_at', 'desc')
->paginate(8);
答案 0 :(得分:0)
$packages = DB::table('packages')
->leftJoin('comments', function($join){
$join->on('comments.package_id', '=', 'packages.package_id');
})
->join('agents', function($join){
$join->on('packages.agent_id', '=', 'agents.id');
})
->select('comments.*', 'packages.*', 'agents.fname', 'agents.lname', 'agents.photo as agent_photo',
DB::raw('AVG(rating) as ratings_average'))
->groupBy('comments.package_id')
->orderBy('packages.created_at', 'desc')
->paginate(8);
我解决了我的问题,我刚刚将inner join
更改为left join
。