【问题标题】:Order records in table by other table column按其他表列排序表中的记录
【发布时间】:2015-10-17 20:35:00
【问题描述】:

我有 3 张桌子:articlespeopleperson_mentions

Article 型号has_many :people, through: person_mentions 等等。

person_mentions 表中,我有3 列article_idperson_idmention_ordermention_order 是一个整数。

我需要找到文章中提到的所有人并通过mention_order订购他们,但是当我运行时

@article.people.order(mention_order: :asc)

我收到一个错误

列 people.mention_order 不存在

所以,我需要从people 表中查询mention_order 来自person_mentions

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails postgresql rails-activerecord


    【解决方案1】:

    你可以试试:

    @article.people.order("person_mentions.mention_order asc")
    

    【讨论】:

    • 假设您使用的是 mysql,从 5.7 开始,STRICT_TRANS_TABLES 被强制执行,此解决方案将不再有效。这是因为 person_mentions 不在 select 子句中,因此不能用于排序。我仍在寻找解决方案。
    猜你喜欢
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多