1
2
如果您使用的是Oracle DBMS,这将非常简单,因为Oracle支持使用 语法。对于SQL Server,我想您可能会发现 Common Table Expressions 有用的 |
2
2
树不能很好地与SQL一起工作。如果您有非常(非常)少的写访问,您可以将树实现更改为使用嵌套集,这将使此查询非常容易。
但是,树上的任何更改都需要接触大量行。最好在客户端中进行递归。 |
3
1
或者如果您有最大数量的级别,您可以创建子查询,但它们的性能非常差。 (或者您可以获取mssqlserver2008并获取新的层次结构函数。。。;) ) |
4
1
像其他人所说的,SQL通常不能很好地处理这种关系。通常,需要一个代理项“relations”表(id,parent_id,unique key on(id,parent_id)),其中:
有了那张桌子,你需要:
|
5
1
好吧,这给了你你想要的结果,但不能保证我没有错过什么。把它当作一个起点。我用了SQL 2005,SQL 2000不支持CTE
|
6
1
如果您正在处理存储在关系数据库中的树,我建议您查看“嵌套集”或“修改的预排序树遍历”。SQL将非常简单:
... 对你感兴趣的每个节点都这样做。 也许这能帮你: http://www.dbazine.com/oracle/or-articles/tropashko4 或者使用谷歌。 |
7
0
|
8
0
|
9
0
下表:
以及以下金额表:
只有叶(最后一级)Id定义了值。 获取数据的SQL查询如下所示:
我希望这能有帮助。 |
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |