【问题标题】:How to query multiple columns against a single array of ids如何针对单个 id 数组查询多个列
【发布时间】:2013-05-21 12:43:48
【问题描述】:

我有以下型号:

Message.rb:sender_id、receiver_id、created_at

我想查找 sender_id 和 receiver_id 都在 id 数组 [1,4,41,543,312,62,234] 中的所有消息。然后,我想按 created_at 排序的对 (sender_id & receiver_id) 对所有消息进行分组。

这是编写查询的正确方法吗?在这里寻找最佳解决方案...

Message.where("sender_id IN ? AND receiver_id IN ?", @ids) 

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    试试:-

    Message.where("sender_id IN (?) AND receiver_id IN (?)", @ids, @ids).order("created_at ASC")
    

    【讨论】:

    • 谢谢,但在 created_at 下订单之前,该组是否按 sender_id 和 receiver_id 分组?
    • 不,它不会对您的记录进行分组。
    • 尝试 Message.where("sender_id IN (?) AND receiver_id IN (?)", @ids, @ids).group("sender_id,receiver_id").order("created_at ASC")
    • 谢谢,我试过了,但“messages.id”列的错误必须出现在 GROUP BY 子句中或用于聚合函数中
    猜你喜欢
    • 2013-04-28
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多