我想要一个回归设置本质上的东西
A
.select('a.id, a.name, b.date, SUM(b.amount)')
.includes(:b)
.group('a.id, b.date")
然而.includes()只是忽略.select()。我使用类似的东西生成一个几乎相同的查询。 (但我选择的项目)
A
.select('a.id, a.name, b.date, SUM(b.amount)')
.joins('LEFT OUTER JOIN b ON a.b_id = b.id')
.group('a.id, b.date")
然而,问题是Rails不知道如何处理B
属性。它没有像.includes()那样构造嵌套的结果集。
问题:是否有可能获得类似.include的返回集,但使用.joins(' LEFT JOINS')。
我一直在探索各种想法,其中包括手动迭代返回集,模拟A.new()
和B.new()
并创建我正在寻找的嵌套结果。
答案 0 :(得分:0)
安德鲁,
你可以尝试下面的代码,看看它是否有效
A
.joins(:b)
.select('a.id, a.name, b.date, SUM(b.amount)')
.group('a.id, b.date")