Ich versuche eine verschachtelte Abfrage in Ecto zu schreiben, die comments
aus der Post-Tabelle vorlädt und dann in einer separaten Abfrage die user
für jeden Kommentar vorlädt. Das sieht aus wie:Geschachteltes Vorladen in Ecto
post = Repo.preload(Repo.get(Post, id), [:comments])
comments = Repo.preload(post.comments, [:user])
Das Problem dabei ist, dass es 3 verschiedene Abfragen in der Datenbank ausgeführt wird, wenn ich weiß, dass es eine Möglichkeit ist es, alle Daten, die ich in einer Abfrage müssen geladen werden.
Hat es etwas mit join: assoc()
zu tun?
Erwarten Sie, dass _der genaue Code_ nur eine Abfrage ausführt? Oder suchen Sie nach einer anderen Möglichkeit, die nur eine Abfrage erfordert? Im ersten Fall scheint es unmöglich - Sie machen drei separate Aufrufe an Funktionen, die eine Abfrage durchführen. –
Ich bin auf der Suche nach einer anderen Möglichkeit, das gleiche wie den Code zu tun, aber in einer Abfrage. Es würde also wie 'post = Repo.one (new_query)' enden –