gpt4 book ai didi

php - 如何使用连接和求和构建 Laravel 查询?

转载 作者:行者123 更新时间:2023-11-29 10:00:45 24 4
gpt4 key购买 nike

我正在尝试在 Laravel 应用程序中配置与此等效的查询:

SELECT SUM(balance), name FROM db.statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id
GROUP BY name;

当我在 MySQL Workbench 中运行该查询时,该查询有效,但是当我尝试使用 Laravel 查询生成器将其转换为 PHP 时,出现错误。我最终想要的是返回所有帐户及其总余额statement_versions.balance。这是我现在的代码:

public static function query(LensRequest $request, $query)
{
return $request->withOrdering($request->withFilters(
$query->select('accounts.name')->sum('statement_versions.balance')
->join('statements', 'statement_versions.statement_id', '=', 'statements.id')
->join('accounts', 'statements.account_id', '=', 'accounts.id')
->orderBy('balance', 'desc')
->groupBy('statement_versions.balance', 'accounts.name')
));
}

我尝试了几种不同的变体,但收到错误SQLSTATE[42S22]:未找到列:1054“字段列表”中的未知列“statement_versions.balance”。我怎样才能解决这个问题并使查询正常工作?

最佳答案

没有你的 table 会有点困难,但我希望这会给你一条实现你想要实现的目标的道路,幸运的是它从第一次开始就起作用:)

DB::table('statement_versions as sv')
->select([
'name',
DB::raw('sum(balance) as total')
])
->join('statements as s', 'sv.statement_id', '=', 's.id')
->join('accounts as a', 's.account_id', '=', 'a.id')
->groupBy('name');

关于php - 如何使用连接和求和构建 Laravel 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53025839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com