SQL—与近查询地理编码器关联的可用记录计数

SQL—与近查询地理编码器关联的可用记录计数,sql,ruby-on-rails,postgresql,rails-geocoder,Sql,Ruby On Rails,Postgresql,Rails Geocoder,我有以下型号 product.rb has_many :product_warehouses, dependent: :destroy has_many :available_warehouses, through: :product_warehouses, :source => :warehouse reverse_geocoded_by "warehouses.latitude", "warehouses.longitude" warehouse.rb has_many :produ

我有以下型号

product.rb

has_many :product_warehouses, dependent: :destroy
has_many :available_warehouses, through: :product_warehouses, :source => :warehouse
reverse_geocoded_by "warehouses.latitude", "warehouses.longitude"
warehouse.rb

has_many :product_warehouses, dependent: :destroy
has_many :products, through: :product_warehouses
geocoded_by :address
after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
category.rb

has_many :products, dependent: :destroy
我想获得特定类别的计数产品。之前我使用了下面的查询

Category.left_outer_joins(:products).select('categories.*,count(products.id) as products_count').group("categories.id").order("categories.created_at")
现在我只想检索特定类别中的可用产品数量

尝试以下查询

categories =  Product.left_outer_joins(:category,:available_warehouses).near([40.730610, -73.935242], Setting.first&.delivery_within,order: false).group("categories.name").count(:id)

categories = Product.joins("RIGHT OUTER JOIN categories ON categories.id = products.category_id INNER JOIN product_warehouses ON product_warehouses.product_id = products.id INNER JOIN warehouses ON warehouses.id = product_warehouses.warehouse_id").near([40.730610, -73.935242], Setting.first&.delivery_within,order: false).group("categories.name").count(:id)
但在这2个查询中,我无法获得包含0个产品的类别。如何检索特定类别的可用产品计数