9
gibi bir durum göz önüne alındığında:Raylar grup/sahip/sayım sorgu
Company.joins(:users).group("companies.id").having("COUNT(users.id)=3")
Ama almanın en etkili yolu budur: 3 Kullanıcısı olan şirketler almak için Company
has_many Users
, bu verimli çalışır 0 kullanıcısı olan şirketler (yok)? (Tanım 0 Kullanıcılarla şirketler dışlar tarafından joins
gibi), belli ki, aynı yaklaşım işe yaramaz Çünkü:
Company.joins(:users).group("companies.id").having("COUNT(users.id)=0")
Bu durumun "birleştirmeler" yerine "içerir" kullanılarak basitleştirilebileceğini düşünüyorum. Gibi: Company.includes (: kullanıcılar) .group ("companies.id"). Sahip ("COUNT (users.id) = 0") – miguelfg