Mysql 在与ActiveRecord的多对多关系上使用带顺序的distinct方法
我在ActiveRecord中定义了一个经典的多对多关系: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
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