我有 2 个以下型号:
class Schedule < ActiveRecord::Base
attr_accessible :description, :deadline_on, :repeat
has_many :scheduled_transactions
end
class ScheduledTransaction < ActiveRecord::Base
attr_accessible :transaction_on, :description
belongs_to :schedule
end
我想从每个计划中找到最后计划的交易。我知道我可以做到:
Schedule.all.each do |schedule|
schedule.scheduled_transactions.order(:transaction_on).last
end
但我想优化它并选择一个数据库。
我尝试构建 Rails 查询:
ScheduledTransaction.select('DISTINCT(schedule_id), scheduled_transactions.*').order('transaction_on DESC')
被翻译成:
SELECT DISTINCT(schedule_id), scheduled_transactions.* FROM "scheduled_transactions" ORDER BY transaction_on DESC
但它没有给出预期的结果。有多行具有相同的 schedule_id。
我的目标是选择包含每个时间表的最后一个预定事务的预定事务列表。有什么建议么?
(PostgreSQL) 9.1.9