数据库
首页 > 数据库> > SQL:递归选择所有子记录的SUM

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

作者:互联网

我有一张桌子,桌子之间有一对多的关系.每个记录可以有来自同一张表的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级(或更多)

解决方法:

这可能会有些帮助: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解决方案.看来您要做的事情确实效率低下,或者您将不得不修改表结构以支持此特定功能.

标签:oracle,hierarchy,sql,mysql,tsql
来源: https://codeday.me/bug/20191106/2001127.html