我有一个可能得分的用户模型
Class User < ActiveRecord::Base
has_many :scores
我希望能够查询我的postgresql数据库以返回至少有一个分数的用户。
User.where(scores.count >= 1)
如何在不添加counter_cache的情况下完成此任务?
答案 0 :(得分:1)
更多Rails-ish方式将是
User.joins(:scores).where('scores.user_id > 0')
另外,我认为SELECT count(*)将返回用户数,而不是用户行本身,但我不确定。
答案 1 :(得分:0)
您可以使用EXISTS
:
SELECT count(*) FROM users
WHERE EXISTS (SELECT 1 FROM scores WHERE scores.user_id = users.id)