如何查询尚未撰写任何帖子的用户? 这就是我想要的:
u = User.joins(:posts).where('posts.size = ?', 0)
输出:
PG::UndefinedColumn: ERROR: column posts.size does not exist
试图绕过正确的SQL语法,但到目前为止没有运气
答案 0 :(得分:5)
必须 在没有加入的情况下执行此操作,如下所示:
User.where(Post.where("posts.user_id = users.id").exists.not)
它对链条件非常有用(比如应用不同的过滤器)。
创建SQL,如:
SELECT "users".* FROM "users"
WHERE (
NOT (
EXISTS (SELECT "posts".* FROM "posts" WHERE (posts.user_id = users.id))
)
)