在预加载中添加Group By子句

时间:2016-10-30 09:01:53

标签: elixir ecto

我有一个通过HABTM连接表具有多对多关联的模型。但是,我的连接表没有唯一地映射我的行,因此我需要添加一个group_by子句来获取我的唯一行。

使用http://localhost:8088/x/#/y时,有没有办法按表达式添加组?

Repo.preload

生成的查询:

Repo.get!(P1, p1_id)
|> Repo.preload(:c0)

目标查询:

SELECT 
    c0.*, p1."id" FROM "c0" AS c0
LEFT JOIN "p1" AS p1
    ON p1."id" = 2
LEFT  JOIN "c2" AS c2
    ON c2."p1" = p1."id"
WHERE (c2."c1_id" = c0."id")

1 个答案:

答案 0 :(得分:1)

对此我不熟悉,我没有在当地进行测试,但我认为可以实现以下目标;

query = from p in P1,
        join: c in assoc(p, :c0)
        group_by: p.id
        preload: [c0: c]
Repo.get(query, p1_id)