Mysql 在与ActiveRecord的多对多关系上使用带顺序的distinct方法

Mysql 在与ActiveRecord的多对多关系上使用带顺序的distinct方法,mysql,ruby-on-rails,activerecord,sql-order-by,distinct,Mysql,Ruby On Rails,Activerecord,Sql Order By,Distinct,我在ActiveRecord中定义了一个经典的多对多关系: class Developer < ApplicationRecord has_many :developers_code_reviews has_many :code_reviews, through: :developers_code_reviews end class DevelopersCodeReview < ApplicationRecord belongs_to :code_review be

我在ActiveRecord中定义了一个经典的多对多关系:

class Developer < ApplicationRecord
  has_many :developers_code_reviews
  has_many :code_reviews, through: :developers_code_reviews
end

class DevelopersCodeReview < ApplicationRecord
  belongs_to :code_review
  belongs_to :developer
end

class CodeReview < ApplicationRecord
  has_many :developers_code_reviews
  has_many :developers, through: :developers_code_reviews
end

我希望对开发人员有一个明确的认识。

我找到了答案,这要感谢MySQL子查询的这个清晰示例:

通过这个例子,我了解到我需要一个如下所示的子查询:

SELECT `developers`.*
FROM `developers`
INNER JOIN `developers_code_reviews` ON `developers_code_reviews`.`developer_id` = `developers`.`id`
INNER JOIN `code_reviews` ON `code_reviews`.`id` = `developers_code_reviews`.`code_review_id` 
ORDER BY `code_reviews`.`created_at` ASC
挑选* 来自开发者 左外连接 选择开发人员id,maxupdated\u at max\u updated\u at 来自开发人员\u代码\u审查 按开发者id分组 dcr ON developers.id=dcr.developer\u id 按maxupdt订购 在我的例子中,翻译成ruby:

类developerCodeReview