【问题标题】:Rails equivalent active record query for SQL query用于 SQL 查询的 Rails 等效活动记录查询
【发布时间】:2015-11-04 13:28:57
【问题描述】:

如何为以下 MySQL 查询编写 rails4 活动记录等效查询?

SELECT c.id,c.account_name,sum(i.balance) as balance from clients c, invoices i 
where c.id = i.client_id GROUP BY  c.id

【问题讨论】:

    标签: mysql sql ruby-on-rails-4 activerecord rails-activerecord


    【解决方案1】:

    Client.joins(:invoices).select('clients.id, clients.account_name, sum(invoices.balance) as balance').group('clients.id')

    【讨论】:

    • 是否可以在没有连接的情况下编写查询?
    • Client.joins(:invoices) 等价于from clients c, invoices i where c.id = i.client_id
    • 但是您也可以使用find_by_sql 方法:Clients.find_by_sql "SELECT c.id,c.account_name,sum(i.balance) as balance from clients c, invoices i where c.id = i.client_id GROUP BY c.id" 应该可以工作。
    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多