我想按顺序使用计数,我使用了以下两种方法
第一
DB::table('user_skill')
->join('skill_category', 'user_skill.skill_category_id', '=', 'skill_category.skill_category_id')
->select(DB::raw('user_skill.skill_category_id', 'skill_category.skill_name','count(user_skill.skill_category_id) as totalIds'))
->orderBy('totalIds','desc')
->groupBy('user_skill.skill_category_id')
->get();第二
DB::table('user_skill')
->join('skill_category', 'user_skill.skill_category_id', '=', 'skill_category.skill_category_id')
->select(DB::raw('user_skill.skill_category_id', 'skill_category.skill_name'))
->orderBy('count(user_skill.skill_category_id)','desc')
->groupBy('user_skill.skill_category_id')
->get();但两人都犯了以下错误
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'totalIds' in 'order clause'有什么建议吗,我怎么解决这个问题?
发布于 2016-06-15 17:03:31
如果您检查原始函数,您将看到它只接受一个参数。
public static function raw($value){
return \Illuminate\Database\MySqlConnection::raw($value);
}此外,您要做的是传递多个参数,以便只传递第一个参数。
你可以像下面这样修理它,
->select(DB::raw('user_skill.skill_category_id, skill_category.skill_name, count(user_skill.skill_category_id) as totalIds'))或
->select('user_skill.skill_category_id', 'skill_category.skill_name', DB::raw('count(user_skill.skill_category_id) as totalIds'))https://stackoverflow.com/questions/37832682
复制相似问题