SQLSTATE[42000]:语法错误或访问冲突:1055“new.bank_accounts.id”不在 GROUP BY 中

SQLSTATE[42000]: Syntax error or access violation: 1055 'new.bank_accounts.id' isn't in GROUP BY

提问人:Imran Niaz 提问时间:4/29/2023 最后编辑:Wakil AhmedImran Niaz 更新时间:4/30/2023 访问量:38

问:

SQLSTATE[42000]: Syntax error or access violation: 1055 'new.bank_accounts.id' isn't in GROUP BY (Connection: mysql, SQL: select `bank_accounts`.`id`, `bank_accounts`.`holder_name`, `bank_accounts`.`bank_name`, sum(amount) as total from `revenues` left join `bank_accounts` on `revenues`.`account_id` = `bank_accounts`.`id` where `revenues`.`created_by` = 2 and `revenues`.`created_by` = 2 group by `revenues`.`account_id`)

代码行是从数据库中获取收入帐户数据并将其存储在变量中。其工作原理如下:$reportData['revenueAccounts'] = $revenueAccounts->get();$reportData

$revenueAccounts是 的实例,它表示对数据库的查询。 $revenueAccounts 上的方法执行查询,并从数据库中的 revenue_accounts 表返回记录集合。 该变量是存储报表数据的数组。代码行将收入帐户记录的集合分配给数组中的键。 总体而言,此代码行从数据库中提取收入帐户数据,并将其存储在数组中以用于生成报表。Illuminate\Database\Query\Builder classget()$reportData$reportData['revenueAccounts'] = $revenueAccounts->get();$reportData['revenueAccounts']

$bankAccount = BankAccount::find($request->account);

$filter['account'] = !empty($bankAccount) ? $bankAccount->holder_name . ' - ' . $bankAccount->bank_name : '';

if ($bankAccount->holder_name == 'Cash') 
{
    $filter['account'] = 'Cash';
}

if ($request->type == 'revenue' || !isset($request->type)) 
{
    $reportData['revenues'] = $revenues->get();
    $revenueAccounts->where('revenues.created_by', '=', \Auth::user()->creatorId());
    $reportData['revenueAccounts'] = $revenueAccounts->get();
}

if ($request->type == 'payment') 
{
    $reportData['payments'] = $payments->get();
    $paymentAccounts->where('payments.created_by', '=', \Auth::user()->creatorId());
}

我有问题无法找到所有问题

php mysql laravel laravel-8

评论

1赞 Khang Tran 4/29/2023
检索的列必须属于分组依据的列。参考更多 stackoverflow.com/questions/25800411/mysql-isn't-in-group-by
1赞 mrhn 5/1/2023
此外,这显然是分组的问题,感觉缺少某些东西,您的问题没有一部分有分组电话。例如,我们不知道$payments是如何建造的

答: 暂无答案