一尘不染

SQL:递归选择所有子记录的SUM

sql

我有一张桌子,桌子之间有一对多的关系。每个记录可以有来自同一张表的n个孩子。例如

create table folder
ID: Number 20 PK
PARENT_ID: Number 20 FK references folder.ID
SIZE: NUMBER 20
...

给定一个ID,我想递归选择所有文件夹记录的SUM(SIZE)。目标数据库是MySql 5,但是如果它的通用性足以在Oracle和MS-
SQL中运行,那将是很好的选择。

我不知道树有多深,可能是1级,可能是50级(或更多)


阅读 198

收藏
2021-03-08

共1个答案

一尘不染

这可能会有些帮助:http : //mikehillyer.com/articles/managing-hierarchical-data-in-
mysql/

在Oracle(http://download-
east.oracle.com/docs/cd/B12037_01/server.101/b10759/queries003.htm)中,这将是一个简单的查询,因为它支持使用“
CONNECT BY”的分层查询,但我不支持认为没有针对MySQL的类似解决方案。看来您要做的事情实际上效率不高,或者您将不得不修改表结构以支持此特定功能。

2021-03-08