[英]Unknown column in 'having clause':
我正在开展一个项目,我有很多用户,用户有很多帖子。 我正在尝试让帖子计数超过某个阈值的用户,但我正在使用的查询似乎不起作用。
User.where(id: user_ids)
.where(has_posts: true)
.joins(:posts)
.group('users.id')
.having('COUNT(posts.id) >= user.post_threshold')
但是使用此查询,我Unknown column posts.id in 'having clause':
获得了Unknown column posts.id in 'having clause':
任何有关如何解决这个问题的帮助将不胜感激。
您可以使用posts.*
表示法,至少在Postgres中,不了解mysql。
User.where(id: user_ids)
.where(has_posts: true)
.joins(:posts)
.group(:id)
.having('COUNT(posts.*) >= users.post_threshold')
你并不需要having
针对,一个简单的where
会满足你的需要:
User.
where(id: user_ids).
where(has_posts: true).
where('COUNT(posts.id) >= users.post_threshold').
joins(:posts).
group('users.id')
编辑:在某些数据库中,您可能需要在选择中包含聚合,将此行添加到链中:
.select('*, COUNT(posts.id)')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.