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 用户
我有一个查询成功加入 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 用户