|
1
8
你可以使用
recursive common table expression
如果您使用大多数品牌的数据库——除了MySQL和SQLite以及其他一些晦涩难懂的(对不起,我确实认为Firebird晦涩难懂)。这种语法是ansisql标准,但是Firebird
firebird2.1确实支持递归CTE,正如@huguesvanlandeghem所评论的那样。 否则请看我的演示 Models for Hierarchical Data with SQL 例如,可以为树中的每个路径存储额外的行,而不仅仅是直接的父/子路径。我称之为这种设计 闭合表 .
|
|
|
2
1
不幸的是,没有一个很好的通用解决方案可以适用于所有数据库的所有情况。 对于MySQL解决方案,我建议您查看以下资源:
对于PostgreSQL和sqlserver,您应该看看 recursive CTEs . CONNECT BY 它是SQL的专有扩展,使处理树结构变得更加容易。 |
|
|
3
0
|