Ruby on rails 在Rails中显示没有帖子的用户
我将如何查询尚未撰写任何帖子的用户? 这就是我正在尝试的:Ruby on rails 在Rails中显示没有帖子的用户,ruby-on-rails,Ruby On Rails,我将如何查询尚未撰写任何帖子的用户? 这就是我正在尝试的: u = User.joins(:posts).where('posts.size = ?', 0) 输出: PG::UndefinedColumn: ERROR: column posts.size does not exist 我正试图了解正确的SQL语法,但到目前为止运气不好您必须在没有连接的情况下执行此操作,如下所示: User.where(Post.where("posts.user_id = users.id").ex
u = User.joins(:posts).where('posts.size = ?', 0)
输出:
PG::UndefinedColumn: ERROR: column posts.size does not exist
我正试图了解正确的SQL语法,但到目前为止运气不好您必须在没有连接的情况下执行此操作,如下所示:
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))
)
)
您必须在没有联接的情况下执行此操作,如下所示:
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))
)
)
它创建了一个
EXIST
子查询,这是一个有效的sql(而且非常方便:)。这不会产生两个单独的sql请求吗?有没有办法用一个来做呢?@GeorgeMillo它只做一个,检查生成的sqlit创建了一个EXIST
子查询,这是有效的sql(而且非常方便:)。这不会产生两个单独的sql请求吗?有没有办法用一个来做呢?@GeorgeMillo它只做一个,检查生成的sql