我想知道是否可以使用流畅的查询构建器在一个查询中获取多个字段的总和.
我目前有两个表:活动和与会者.与会者属于事件,有两个字段:total_raised和total_hours.我想要做的是选择所有活动以及筹集的总金额/在该活动上花费的总小时数.现在,如果我只是使用sql,我会做一些事情的效果:
SELECT Event.id, sum(Attendees.total_raised), sum(Attendees.total_hours)
FROM Events JOIN Attendees ON Events.id = Attendees.event_id
GROUP BY Event.id
但是,我似乎找不到使用流畅查询构建器一次获取多个总和的方法.有没有办法做我想用流利做的事情,或者我应该把它作为一个原始的SQL查询?
解决方法:
你可以使用sum(),即:
$q = DB::table('events')
->join('attendees', 'events.id', '=', 'attendees.event_id')
->sum('total_raised')
->sum('total_hours');
如果这不起作用,您可以尝试:
...
->get(
array(
'events.id',
DB::raw('SUM(attendees.total_raised)'),
DB::raw('SUM(attendees.total_hours)')
)
);