leftjoin中列的Count()(具有自定义位置)

时间:2016-01-05 12:51:49

标签: laravel join laravel-4 eloquent

任何人都可以帮助我,我没有找到解决方法。

我想显示主题列表和列总回复(仅限有法定=已批准的回复)。

我的表格如下:

subjects(idsubject, title)
responses(idresponse, idsubject, message, status)

所以我做了:

$subjects= Subject::select('subjects.*', "count(responses.id) as responses" )
->leftJoin('responses', function($join)
{
    $join->on('responses.idsubject', '=', 'subjects.idsubject')
    ->where('responses.status', '=', '1');
})
->get();

但我收到错误消息

  

未找到列:1054未知列'count(responses.id)'

我怎么解决这个问题?

感谢

1 个答案:

答案 0 :(得分:0)

您需要使用此selectRaw代替select - 对于select,您只能使用列名:

$subjects= Subject::selectRaw("subjects.*, count(responses.id) as responses")
->leftJoin('responses', function($join)
{
    $join->on('responses.idsubject', '=', 'subjects.idsubject')
    ->where('responses.status', '=', '1');
})
->get();