我很难找到有关如何执行以下Ecto查询的文档。我有一个模型events
,它具有一个通过customer
到event.customer_id
的一对一映射。
在现有的查询管道中,我在events
上查询并返回events
,它们仅具有不同的客户:
defp events_by_distinct_customer(query) do
query
|> distinct([e], e.customer_id)
end
除此以外,我需要做的是返回相关的客户对象而不是事件。我该怎么办?我要做什么的方法/说明是什么?
答案 0 :(得分:0)
您可能想对客户的表格进行简单的inner join
。
query
|> distinct([e], e.customer_id)
|> join(:inner, [e], c in Customers, on: e.customer_id == c.id)
|> select([e, c], c)
内部联接只返回包含联接双方的行,然后使用select/3
只能从结果集中提取客户。