Tom*_*ogg 10 sql activerecord ruby-on-rails
鉴于如下情况:Companyhas_manyUsers
要获得拥有3个用户的公司,这可以有效地运作:
Company.joins(:users).group("companies.id").having("COUNT(users.id)=3")
Run Code Online (Sandbox Code Playgroud)
但是,获得拥有0个用户的公司(无)的最有效方法是什么?因为,显然,同样的方法不起作用(根据joins定义,不包括有0个用户的公司):
Company.joins(:users).group("companies.id").having("COUNT(users.id)=0")
Run Code Online (Sandbox Code Playgroud)
执行LEFT JOIN而不是INNER JOIN.
Company.joins('LEFT OUTER JOIN users ON companies.id = users.company_id')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8970 次 |
| 最近记录: |