使用ecto计算关联的模型行

时间:2018-05-10 13:30:07

标签: elixir phoenix-framework ecto

我正在尝试查找有多少项目属于特定用户。

我知道您可以这样做以获得模型的计数:

count = User |> Repo.aggregate(:count, :id)

但是如何找到属于该用户的项目数?

2 个答案:

答案 0 :(得分:5)

以下是一种方法:获取用户,使用assoc/2为其关联创建查询,然后按照您现在正在执行的方式对其进行计数:

User |> Repo.get(123) |> assoc(:projects) |> Repo.aggregate(:count, :id)

答案 1 :(得分:1)

UPDATE Table1 t1 JOIN Table2 t2 ON t1.ID=t2.ID SET t1.value =t2.value WHERE ... 表属于Projects表,因此它具有外键,因此您可以在项目模型上进行汇总计数users

project.user_id == ^user_id