Hi guys just wondering is it possible to preload but with a condition from the main query
Let’s say I have a model named Post
. A Post
has a tag which is a string. Then I want to query a specific Post
for example Post
with id = idA. While querying the Post
I also want to preload all other Post
which have a similar tag under a field called similar_posts
in the query. So it looks something like this:
%Post{
id: "ID_A",
tag: "TopicA",
similar_posts: [
%Post{
id: "ID_B",
tag: "topicA"
},
%Post{
id: "ID_C",
tag: "TopicA"
}
]
}
Let’s say I already created an association in the Post model:
has_many :similar_posts, MyApp.Post
When I tried
from(p in Post,
preload: [similar_posts: ^from(pp in Post,
where: pp.id != p.id and
pp.tag == p.tag,
order_by: pp.inserted_at
)]
)
It error said that p is undefined. Can someone help me? Am I doing something wrong here or is it not possible and better to seperate the query itself after retrieving the result.