SQL查询中的动态列数

时间:2013-12-08 21:23:12

标签: sql postgresql dynamic recursion

我有两张桌子。

项: - rowid号码 - categoryid编号(类别rowid的外键)

类别: - rowid号码 - parentid号码(此表的rowid的外键

事物是一个项目有一个类别,一个类别可以递归地具有子类别。这样,如果我有以下表格:

items
0 - 3
1 - 4

categories
1 - null
2 - 1
3 - 2
4 - null

这意味着项目0的类别是3,它是类别2的子组,它是类别1的子组。而项目1的类别是4,没有更多级别。

我想要一个返回item的rowid,最低级别类别和每个类别级别的另一列的查询

item.rowid categories.rowid
0 | 3 | 2 | 1
1 | 4

或者至少

0 | 3,2,1
1 | 4

我的问题来自递归性和动态数量的列作为第一种情况下的响应。

我希望在sql级别完成此操作的原因是因为最终结果将按类别排序,并且我想让PostgreSQL服务器负责它。

非常感谢任何帮助。谢谢!

0 个答案:

没有答案