我有一个叫做类别的表格,一个记录可以有一个父母或一个孩子和这个类别。类别表是通过post_category与帖子的多对多关系。
category[id, name category_id]
posts[id,title, body....]
post_cats[id,post_id,category_id]
示例数据
category
id name category_id
1 xxxx 0
2 yyyy 0
3 ZZZZ 1
4 WWWW 1
5 AAAA 2
6 BBBB 2
posts
id title body
1 aaaaaaaaaa
2 bbbbbbbbbbbbbb
3 ccccccccccccccc
4 ddddddddddd
post_cats
id post_id category_id
1 1 3
2 1 4
3 2 5
4 2 6
5 2 3
类别记录1的帖子为3,记录2的帖子为2 我想计算属于类别名称'xxxx'的所有帖子,或者只是想计算属于每个父类别的所有帖子,并计算其子类别。
答案 0 :(得分:0)
select post_id
from post_category
group by post_id
having count(*) = (select count(*) from category)
答案 1 :(得分:0)
只需使用arel gem:
尝试此方案class ParentCategory < ...
has_many :categories
scope :posts, -> do
Post.joins(:categories)
.where(Post.arel_table[:id].eq(Category.arel_table[:post_id])
.and(Category.arel_table[:parent_category_id].eq(arel_table[:id])))
end
end