我很难理解如何使用with recursive来实现使用邻接模型的常见查询和报表,其中一条记录引用其“超级”记录。
我有许多innodb表,其中的字段是同一个表中的外键。
例如,我实现了一个复式记账系统,其中有一个“普通日记账”表 Amount
, Source
,和 Destination
柱。后两列引用一个“accounts”表,该表使用按层次结构排列的标准七位数帐号。
因此,“accounts”表(例如)将有一行 ID
包含“1000000”, Super
包含null,并且 Name
包含“资产”
还有其他行像“1000010”( ID
), '1000000' ( Super
),'现金资产'( Name
),和“1000011”( ID
), '1000010' ( Super
)“chequing”( Name
).
如何为一个标准的财务报表创建标准的“资产负债表”和“损益”报告,其中各个子账户将显示它们自己的总和(“普通日记账”的总和 Amount
具有相同 Source
帐户,减去那些相同的 Destination
每个超级帐户将显示它们包含的所有子帐户汇总的总和。
另一个我被难住的例子是…我们的非营利合作社饲养动物。每种动物的记录都有一个 ID
还有田野 Dam
以及 Sire
分别包含该动物的母亲和父亲的身份证。我搞不懂这些信息怎么能用“家谱”式的报告来表示。我发现的例子似乎不容易改变,以显示双重递归的情况。
我用的是mariadb 10.2.13。我到处找,用递归的例子搜索,但是有些东西没有穿过我的脑袋…
这会越来越长,但我很乐意添加模式和示例数据,如果这有帮助的话。
谢谢你的建议!
暂无答案!
目前还没有任何答案,快来回答吧!