我有一个查询,它成功地连接了具有正确条件的表,但它没有返回地图中的joinee表选择数据。有没有办法可以在地图中获取数据,如
from t1 in "Table1",
join: t2 in "Table2", on: t1.t2_id == t2.id,
select: map(t1, [:id, {"Table2", [:id]}])
在上面的查询运行时应该返回[%{"id": 1, "Table2": %{"id": 1}}]
之类的内容,但它只会返回[%{"id": 1}]
注意:有点类似的问题 How to select data from two tables in Ecto但它没有在地图中返回。
答案 0 :(得分:1)
这就是你应该这样做的方式
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用户