0

假设我的博客有一个帖子表。帖子可以有评论,并且评论表行具有他们正在评论的帖子的 FK。因此,可以通过选择“comments.id is null”来查找所有没有评论的帖子。

但是让我们添加一个 Comment.tone 列,它可以具有 5 个值之一,例如“支持”、“愤怒”或其他任何值。

现在我想查找所有没有愤怒评论的帖子。当您要求“所有不存在的行,但如果它们存在,将具有 'angry' 的值”时,选择“comments.id is NULL”的 SQL 技术不起作用。

那么我该如何选择它们呢?

4

1 回答 1

1

假设模型的名称是 Post 和 Comment,试试这个。

他们有类似的关系

Post has_many :comments

Comment belongs_to :post

Post.joins(:comments).where(tone: 'angry').all

没有生气

Post.joins(:comments).where('tone is not in (?)', ['angry']).all

or 

Post.joins(:comments).where(tone: ['happy', 'abc']).all
于 2013-08-01T16:59:09.397 回答