Ecto fragment subquery alias

Viewed 163

I have an Ecto Subquery such as

my_sub = from(m in module
  select: %{id, date}
)

another_subquery = from(m2 in module2
  join: fragment(subquery(my_sub) "as s")
  ...
)

I am trying to alias the my_sub as s in the join.

How can I do that?

1 Answers

You can achieve "aliases" using Ecto's positional binding.

my_subquery =
  from m in Module,
  select: %{id: m.id, date: m.date}

another_subquery = 
  from m2 in Module2,
  join: s in subquery(my_subquery), on: m2.id == s.id,
  where: s.date >= ^my_date
Related