【问题标题】:Ecto model query to return related objects through a one to one mappingEcto 模型查询通过一对一映射返回相关对象
【发布时间】:2019-06-10 19:56:48
【问题描述】:

我很难在文档中找到有关如何执行以下 Ecto 查询的信息。我有一个模型 events,它与 customerevent.customer_id 的一对一映射。

在现有的查询管道中,我正在查询 events 并返回 events,它们只有一个不同的客户:

  defp events_by_distinct_customer(query) do
    query
    |> distinct([e], e.customer_id)
  end

除此之外,我还需要返回相关的客户对象而不是事件。我该怎么做,我要求做什么的方法/描述是什么?

【问题讨论】:

  • 您只想要客户结果?

标签: sql elixir ecto


【解决方案1】:

您可能想对客户的桌子做一个简单的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 您可以从结果集中只提取客户。

【讨论】:

    猜你喜欢
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 2015-10-12
    • 2016-05-04
    • 2019-11-22
    相关资源
    最近更新 更多