如何查询尚未撰写任何帖子的用户?这就是我想要的:
u = User.joins(:posts).where('posts.size = ?', 0)
Run Code Online (Sandbox Code Playgroud)
输出:
PG::UndefinedColumn: ERROR: column posts.size does not exist
Run Code Online (Sandbox Code Playgroud)
试图围绕正确的SQL语法,但到目前为止没有运气
你必须在没有连接的情况下这样做,如下所示:
User.where(Post.where("posts.user_id = users.id").exists.not)
Run Code Online (Sandbox Code Playgroud)
它对链条件非常有用(比如应用不同的过滤器).
创建SQL如:
SELECT "users".* FROM "users"
WHERE (
NOT (
EXISTS (SELECT "posts".* FROM "posts" WHERE (posts.user_id = users.id))
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |