Sql 按多对多关系筛选

Sql 按多对多关系筛选,sql,ruby-on-rails,Sql,Ruby On Rails,我有两个表:Post和Category具有多对多关系。(categories\u posts是联接表) 我有一个类别id列表[2,5,7]。我如何找到与所有这些类别相关的帖子 例如,如果我有两个类别:food和english,我需要找到所有关于food和english语言的帖子 我试过这个,但不管用。(过滤器是类别ID) 在Rails 5中,您可以执行以下操作: Post.left_连接(:categories).where('categories_id IN?',id) scope :filt

我有两个表:
Post
Category
具有多对多关系。(
categories\u posts
是联接表)

我有一个类别id列表
[2,5,7]
。我如何找到与所有这些类别相关的帖子

例如,如果我有两个类别:
food
english
,我需要找到所有关于
food
english
语言的帖子

我试过这个,但不管用。(
过滤器
是类别ID)

在Rails 5中,您可以执行以下操作: Post.left_连接(:categories).where('categories_id IN?',id)

scope :filter_by_categories, -> filters {
  where(categories_posts_ids.contains filters)
}

has_many :categories_posts
has_many :categories, through: :categories_posts