在laravel中获取mysql查询中的Count

时间:2016-01-14 10:15:15

标签: php mysql laravel

我想选择每个项目获得的投票数。以下查询工作正常,但如果没有对某个项目进行投票则存在问题,那么该项目未在结果中显示。我实际上想要每个项目的详细信息和如果项目没有投票,则应显示为零。 我怎样才能实现它?

DB::table('wonders')
        ->leftjoin('vote','votes.wonderId','=','wonders.id')
        ->select('wonders.id','wonders.title',DB::raw('count(votes.vote) as votes'))
        ->get();

3 个答案:

答案 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();