我有两个模型:公司和交易(有很多关系)。事务模型具有balance
属性。我有一个查询加入模型:
scope :joined_transactions, (lambda do
select('transactions.balance as current_balance')
.joins('LEFT OUTER JOIN transactions ON transactions.company_id = companies.id')
end)
但是,我想在此查询中仅包含最后一个事务。因此Company.joined_transactions.first.current_balance == Company.first.transactions.last.balance
应该是真的。
答案 0 :(得分:1)
子查询.joins('left join transactions t on t.company_id = companies.id AND t.id = (SELECT MAX(id) FROM transactions WHERE transactions.company_id = t.company_id)')
答案 1 :(得分:-1)
我相信这个问题已经解决过很多次了。您可以使用subquery或double join。
执行此操作如果这对您不起作用,请在当前案例中添加更多信息