【问题标题】:Performing join执行连接
【发布时间】:2014-12-02 11:37:53
【问题描述】:

我有两个模型

Company,其中has_many 客户和 Customer,其中belongs_to一家公司

我想检索每行看起来像这样的关系:

[company.name, count(customers)]

最后一列是一家公司的客户数量。

Company(id: integer, name: string)

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

非常感谢,谢谢

【问题讨论】:

  • 希望您用一个查询来完成吗?
  • 你能分享表结构/列名吗?
  • 更新的帖子与栏目

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


【解决方案1】:

如果你发出这个:

Customer.count(group: company_id)

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

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

【讨论】:

  • @Tarlen 请尝试两者并提供最后一种方法的结果查询。
【解决方案2】:

这样会有所帮助

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

【讨论】:

  • 很棒,但是如果我使用活动记录会怎样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 2011-07-29
  • 1970-01-01
  • 2022-07-30
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多