Postgres加入类别

时间:2013-12-06 17:38:01

标签: sql postgresql database-design

我需要将子类别连接到一般类别,我有所有类别和子类别列表的页面,子类别有一个类别数组ex。 cat = {10,17},该数组包含一般类别的ID。 我需要将子类别名称加入一般类别。 恩。

cat_id = 1, -> general category ID
name = 'Music', -> general category name
subcats = {'Rock', 'Bla', 'Bla'} -> joined subcategories

此查询列出所有类别和子类别

SELECT * FROM event.kat k ORDER BY k.kat_id

谢谢!

1 个答案:

答案 0 :(得分:2)

如果可能,您应该重构您的架构。在开始时,我看到至少有三个表:categories,subcategories和category_subcategory,它们充当前两个表之间的连接表。在这种情况下,很容易做到“从类别中选择加入category_subcategory加入子类别”。

如果您完全坚持使用此设置,则可以执行类似

的操作
select ...
from event.kat k
       join <subcategories table> s
         on k.kat_id = any (s.subcats)