gpt4 book ai didi

ruby-on-rails - 在 rails 查询中限制 PER 用户

转载 作者:行者123 更新时间:2023-12-03 15:52:50 24 4
gpt4 key购买 nike

所以我有一个标准 用户 表结构,带有主 ID 键,什么不是,还有以下 角色 table :

 user_id | persona_id | time_inserted
2 1 x
2 2 x+1
2 3 x+2
1 1 x+3
5 8 x+6
5 9 x+1

我想做的是检索 最后 插入行并限制为 每个用户 ID。所以,在那个查询中,我想要的结果是:

[2, 3] 因为最后插入的 2 是 persona_id 3 (x+2), [1, 1] 和 [5,8] 因为最后插入的 5 是 persona_id 8 (x+6)

这是我的查询:
to_return = Persona.select(to_get).where(to_condition)

这有效,但会检索它们。如何按照要求限制查询?非常感谢。

最佳答案

这应该有效:

to_return = Persona.select(to_get).where(to_condition).group('user_id').having('time_inserted = MAX(time_inserted)')

更新

如果不将其放入 group 中,则无法选择列条款。
因为您只想按 user_id 分组,一种可能的解决方案是,选择 user_id s 第一个最大 time_inserted像这样:
users_ids_relation = Persona.select('user_id').group('user_id').having('time_inserted = MAX(time_inserted)')

然后,加入 personas基于条件的表,然后选择所需的列:
users_ids_relation.joins('personas').where(to_condition).select(to_get)

它会给你预期的结果。

关于ruby-on-rails - 在 rails 查询中限制 PER 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com