【发布时间】:2016-11-11 02:41:47
【问题描述】:
我正在尝试在 ecto 中编写一个嵌套查询,该查询从 post 表中预加载 comments,然后在单独的查询中我为每个评论预加载 user。这看起来像:
post = Repo.preload(Repo.get(Post, id), [:comments])
comments = Repo.preload(post.comments, [:user])
问题在于,当我知道有一种方法可以在一个查询中加载我需要的所有数据时,它会在数据库上运行 3 个不同的查询。
跟join: assoc()有关系吗?
【问题讨论】:
-
您是否希望这个确切的代码 只运行一个查询?或者您是否正在寻找另一种只需要一个查询的方法?在前一种情况下,这似乎是不可能的 - 您正在对执行查询的函数进行三个单独的调用。
-
我正在寻找另一种方法来做与该代码相同的事情,但在一个查询中。所以它最终会像
post = Repo.one(new_query)
标签: elixir phoenix-framework ecto