我有拖表(捐款和会员)我想从会员ID表格doantion表中获取会员名表格会员表日期和金额,当我调用它给出的功能和错误时(SQLSTATE [42000] :语法错误或访问冲突:1055'donatensupport.donations.donation_id'不在GROUP BY中(SQL:选择donations
。,members
。,总和(金额)作为来自donations
的{{1}}内部加入members
的数量。donations
= member_id
。members
分组id
))我谷歌它好几次,但我没有找到任何解决方案任何身体帮助提前感谢
控制器
member_id
捐赠模式
public function index() {
$donation = DB::table('donations')
->join('members', 'donations.member_id', '=', 'members.id')
->select('donations.*','members.*', DB::raw('sum(amount) as amount'))
->groupBy('member_id')
->get();
return view('donation.index', compact('donation'));
}
会员模型
public function member() {
return $this->belongsTo('App\Member','member_id', 'id');
}
答案 0 :(得分:1)
当您使用分组时,您无法使用捐款。*和成员。* 在这种情况下,您必须明确设置所需的列名称,并确保在group by子句中提及不涉及aggegation函数的列名称
$donation = DB::table('donations')
->join('members', 'donations.member_id', '=', 'members.id')
->select('donations.member_id as member_id','members.name as name', DB::raw('sum(amount) as amount'))
->groupBy('member_id','name')
->get();
return view('donation.index', compact('donation'));