Select 来自两个表的数据,但 return 在地图中动态选择的字段

Select data from two tables but return dynamically selected fields inside map

我有一个查询成功加入 table 且条件正确,但它没有 return 被加入者 table 在地图中选择的数据。有没有办法像

这样在地图中获取数据
from t1 in "Table1",
   join: t2 in "Table2", on: t1.t2_id == t2.id,
   select: map(t1, [:id, {"Table2", [:id]}])

应该 return 类似 [%{"id": 1, "Table2": %{"id": 1}}] 的东西当上面的查询运行时但它只有 returns [%{"id": 1}]

注:有点类似的问题 How to select data from two tables in Ecto 但它不在地图中 return。

你应该这样做

from t1 in "Table1",
 join: t2 in "Table2", on: t1.t2_id == t2.id,
 select: map(t1, [:id]),
 select_merge: %{Table2: map(t2, [:id])}

Credit goes to elixirform 用户