0

嗨,我正在尝试练习 SQL,这更多地用于控制台,而不是在我的实际模型中。我有一个Collection模型has_many: products。我想搜索所有超过 15 个产品的集合。

这是我写的(而且是错误的):

Collection.find_by_sql("SELECT c.id FROM collections c WHERE count(product_id) > 15")

谁能帮我吗?谢谢

4

2 回答 2

0

也许这个 sql 查询会帮助你

select collections.*, count(products.id) as count_products from collections
inner join products on products.collection_id = collections.id
having count_products > 15
于 2013-05-15T18:07:10.570 回答
0

您可以使用子查询来执行此操作:

SELECT *,
  (SELECT COUNT(*) FROM services WHERE collection_id = c.id) services_count
FROM collections c WHERE services_count > 15

你可以试试这个吗?,我没有测试过。

此外,还有一种方法可以在没有普通 SQL 的情况下使用 Active Record,但我不记得该怎么做。

于 2013-05-15T16:15:06.617 回答