2
votes

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
my_sub = from m in module, select: %{id: m.id} Then another_subquery = from m2 in module2, join: u in subquery(my_sub), on: m2.id == u.id - Badu

1 Answers

1
votes

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