如何在Laravel
DB:raw
$report=`societyReport`::select('society_reports.id','society_reports.body','society_reports.created_at',DB::raw("count(votes.vote) as count WHERE vote = 1"))
->`leftjoin`('votes', 'votes.society_reports_id','=','society_reports.id')
->`groupBy`('society_reports.id')
->`orderBy`('society_reports.id', 'DESC')
->paginate(10);
SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。请查看与您的MySQL服务器版本相对应的手册,以在'Where表决= 1
附近使用正确的语法
答案 0 :(得分:1)
有关此结构的更正,请参见:
$report= SocietyReport::leftjoin('votes', 'votes.society_reports_id','=','society_reports.id')
->groupBy('society_reports.id')
->orderBy('society_reports.id', 'DESC')
->select(
'society_reports.id',
'society_reports.body',
'society_reports.created_at',
\DB::raw("count(votes.vote) as count")
)
->where('vote', 1)
->paginate(10);
问题是select()
用于选择列或聚合值。如果要添加where子句,则需要执行->where()