如何在预载聚集

问题描述 投票:1回答:1

所以,我有3个表借款人,头像和贷款

借款人 - > HAS_ONE头像

借款人 - >的has_many贷款

贷款控制器

def list_borrowers do

query =
  from(
    p in Borrower,
    select: p,
    preload: [:avatar],
    preload: [:loan] # I WANT TO AGGREGATE THIS USING COUNT
  )

IO.inspect(Repo.all(query))end

这是正常的工作我的问题是我不知道如何聚合贷款。

我只是想知道,借款人的所有贷款的数量。

elixir phoenix-framework ecto
1个回答
2
投票

我不知道任何可能的方式来preload的总和,但你可能反而声明virtual field并将其包含到您的查询为:

from p in Borrower,
  join: l in Loan,
  on: p.id == l.borrower_id,
  select: %{p | loan_count: count(l.id)}, # virtual field
  preload: [:avatar]
© www.soinside.com 2019 - 2024. All rights reserved.