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