【发布时间】:2014-11-20 00:12:49
【问题描述】:
我有两个模型invoice 和payments。它们之间的关系是invoicehas_many payments。
我正在使用以下左外连接来返回所有尚未支付的发票:
result1 = Invoice.includes(:payments).where(:payments => { :id => nil })
我还对所有已部分支付的发票感兴趣。要返回那些我使用内部连接:
result2 = Invoice.joins(:payments).group("transfers.id").having("sum(payments.amount) < invoice.amount")
我现在想合并这两个结果,即我想要所有未付款或未全额付款的发票。我知道我可以做result = result1 + result2。但是,这不会返回 ActiveRecord 对象。有没有办法将这两个查询合并到一个查询中?
我使用 Rails 4.1 和 PostgreSQL
【问题讨论】:
标签: sql ruby-on-rails postgresql