【发布时间】:2010-08-02 21:05:15
【问题描述】:
我有三个表,categories、tags 和 taggings。类别表以嵌套集的方式放在一起,相关列id、lft、rgt 和parent_id。标签有id 和name。 Taggings 有tag_id 和taggable_id,指的是categories.id。
如果可能的话,我想要一个在字段中返回的查询,比如tag_list,一个包含类别及其所有祖先标签的字符串。所以给定以下架构:
类别
id | parent_id | lft | rgt
1 | NULL | 1 | 6
2 | 1 | 2 | 5
3 | 2 | 3 | 4
标签
id | name
1 | cool
2 | rad
3 | soup
标签
id | tag_id | taggable_id
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
我希望查询 SELECT ??? FROM categories 返回:
id | tag_list
1 | cool
2 | rad cool
3 | rad cool soup
背景信息:我正在运行 Rails,我使用 Thinking Sphinx 进行搜索,并使用 awesome_nested_set 进行嵌套。我有一个名为categories 的表,它在has_many_through 关系中有许多tags。
【问题讨论】:
标签: sql mysql nested-sets