【发布时间】:2019-05-12 08:12:50
【问题描述】:
我正在从事一些维护项目,其中所有都是 sql 查询,但我想将其转换为 laravel。这是以下查询:-
$members = Member::select('members.id','members.first_name',
'members.surname','members.username','members.password',
'members.email','user_access.active',
DB::raw('SUM( IF (user_access.active = "y", 1, 0) ) as acount'))
->join('user_access','user_access.member_id','=','members.id')
->where('special_access','=','n')
->groupby('user_access.member_id')
->having('acount','>','0')
->orderby('members.id','desc')
->orderby('members.username','ASC')
->orderby('user_access.note','DESC')
->paginate(30);
当我执行查询时它给了我错误。在have子句的错误下方
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'acount' in 'having clause' (SQL: select count(*) as aggregate from `members` inner join `user_access` on `user_access`.`member_id` = `members`.`id` where `special_access` = n group by `user_access`.`member_id` having `acount` > 0)
【问题讨论】:
-
它的acount表示activecount,表示user_access表中的活跃列
-
这不是我的帐户.. 请仔细检查我的查询
-
您也应该显示您的表格列详细信息,没有人会了解表格结构,无法帮助您。
-
尝试拥有Raw(DB::raw('SUM( IF (user_access.active = "y", 1, 0) ) as acount')>0) 而不是你拥有
-
Illuminate\Database\Query\Expression 类的对象无法转换为 int
标签: mysql laravel laravel-5.5 laravel-query-builder