首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:inner_lateral在益生菌中的应用

:inner_lateral在益生菌中的应用
EN

Stack Overflow用户
提问于 2016-10-18 11:18:06
回答 1查看 325关注 0票数 0

我试图使用ecto的:inner_lateral并编写了这个查询

代码语言:javascript
复制
SnapshotExtractor
|> order_by(desc: :created_at)
|> limit(1)
|> join(:inner_lateral, [se], cam in fragment("SELECT * FROM cameras as cam WHERE cam.id = ?", se.camera_id))
|> select([se, cam], { se.from_date, se.to_date, se.interval, se.schedule, cam.exid, cam.timezone})
|> Repo.one

它工作得很好,给了我很好的结果,但是它给了我一个未命名的对象,没有给出结果值的名称。问题是,我们也可以在这些值中添加名称吗?我的结果值是

代码语言:javascript
复制
{#Ecto.DateTime<2016-02-25 00:00:00>, #Ecto.DateTime<2016-02-25 00:00:00>, 0,
 %{"Friday" => [], "Monday" => ["0:0-0:0"], "Saturday" => [], "Sunday" => [],
   "Thursday" => [], "Tuesday" => [], "Wednesday" => []}, "oscar2", nil}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-18 11:22:16

您所指的“未命名对象”是一个元组。这是因为您的select表达式是元组的。如果你想给他们起名字的话,你可能想要地图。要返回一个Map,只需在select表达式中返回一个Map:

代码语言:javascript
复制
|> select([se, cam], %{ from_date: se.from_date, to_date: se.to_date, interval: se.interval, schedule: se.schedule, exid: cam.exid, timezone: cam.timezone})

如果将返回值赋值给foo,则可以使用foo.from_datefoo.to_date等访问字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40106803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档