小编Jam*_*mes的帖子

Rails User.joins.not(...)在Active Record中?

我想在单个SQL查询中查询所有没有评论的用户?

楷模:

class User < ActiveRecord::Base
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

所以我想要与此相反:

User.joins.(:comments).group('users.id')
Run Code Online (Sandbox Code Playgroud)

但不是这样的:(因为它生成两个查询)

User.where.not(id: Comment.pluck(:user_id))
Run Code Online (Sandbox Code Playgroud)

也许是这样的?

User.joins.not.(:comments).group('users.id')
Run Code Online (Sandbox Code Playgroud)

感谢您的任何意见!

sql activerecord ruby-on-rails ruby-on-rails-4

10
推荐指数
1
解决办法
7203
查看次数