SQL 聚合计数 = 0
我在 Rails 3 应用程序中有以下模型,并选择要求:
class Item
class Item
class Item
class Item
class Item
class Item
class Item
class Item
class Item
class Item <增强现实
has_many :持有
类控股<增强现实
own_to :item
Holding 模型有一个“active”布尔值。
我希望找到每个拥有 0 个“活跃”馆藏的项目(它可能有任意数量的相关馆藏),我已经尝试了相当多的组合。
从项目中选择 * JOIN
(SELECT Holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM 馆藏
WHERE Holdings.active =“t”
按 Holdings.item_id 分组
hcount = 0)
ON items.id = Holdings.item_id
但这只会返回大于 0 的计数。
任何人都可以指出我正确的方向吗?
I have the following models in a Rails 3 app, and select requirement:
class Item < AR
has_many :holdings
class Holding < AR
belongs_to :item
The Holding model has an 'active' boolean value.
I wish to find each Item that has 0 'active' holdings ( it may have any number of associated holdings ), I've tried quite a few combinations.
SELECT * from items JOIN
(SELECT holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM holdings
WHERE holdings.active = "t"
GROUP BY holdings.item_id
HAVING hcount = 0)
ON items.id = holdings.item_id
but this will only return counts that are greater than 0.
Can anyone point me in the right direction?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您指的是任何时,请不要使用计数!
使用不存在子句。
这个英文声明说给我馆藏中没有匹配行的项目的所有行。
Don't use count when you mean any!
Use an not exists clause.
This statement in english says give me all the rows from items where there are no matching rows in holdings.