我想选择每个项目获得的投票数。以下查询工作正常,但如果没有对某个项目进行投票则存在问题,那么该项目未在结果中显示。我实际上想要每个项目的详细信息和如果项目没有投票,则应显示为零。 我怎样才能实现它?
DB::table('wonders')
->leftjoin('vote','votes.wonderId','=','wonders.id')
->select('wonders.id','wonders.title',DB::raw('count(votes.vote) as votes'))
->get();
答案 0 :(得分:1)
试试这个
DB::table('wonders')
->leftjoin('vote','votes.wonderId','=','wonders.id')
->select('wonders.id','wonders.title',DB::raw('ifnull(count(votes.vote),0) as votes'))
->groupBy('wonders.id')
->get();
答案 1 :(得分:0)
也许你需要使用iffnull,试试这个
DB::table('wonders')
->leftjoin('vote','votes.wonderId','=','wonders.id')
->select('wonders.id','wonders.title',DB::raw('ifnull(count(votes.vote),0) as votes'))
->get();
答案 2 :(得分:0)
试试这个
DB::table('wonders')
->leftjoin('vote','votes.wonderId','=','wonders.id')
->selectRaw('wonders.id','wonders.title',count(votes.vote) as votes)
->groupBy('wonders.id')
->get();