执行加入

时间:2014-12-02 11:37:53

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

我有两个型号

Companyhas_many客户和。{ Customerbelongs_to公司

我想检索一个关系,其中每一行看起来像:

[company.name, count(customers)]

其中最后一列是公司下的客户数量。

Company(id: integer, name: string)

Customer(id: integer, name: string, company_id: integer)

非常感谢,谢谢

2 个答案:

答案 0 :(得分:0)

像这样会有所帮助

select company.id, company.name, count(*)
from   company join customer on customer.company_id = company.id
group by compamy.id, company.name

答案 1 :(得分:0)

如果你发出这个:

Customer.count(group: company_id)

它应返回hash company_id作为键,并将客户计为值。 然后你可以试试这个:

Company.joins(:customers).select("name, count(*)").all