Sch*_*ern 6 ruby-on-rails subquery rails-activerecord ruby-on-rails-6
我想update ... from使用 CTE 进行 , 或更新,但使用 ActiveRecord。理想情况下,这样我就可以利用in_batches.
例如,人有很多东西,我想缓存他们的第一个东西。我想它会像这样工作。
Person
.in_batches
.from(
Thing.select(
:id,
:people_id,
"rank() over (partition by people_id order by created_at asc) as thing_rank"
)
)
.where(
"things.thing_rank": 1,
"people.id": :people_id
)
.update_all(cached_thing_id: "things.id")
Run Code Online (Sandbox Code Playgroud)
但我想不出任何有效的组合。
in_batches或者,有没有办法在手动编写 SQL 时使用?我不喜欢子查询方法,CTE 或临时视图就可以了。
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |