如何使用python从数据库创建家谱(谱系?)>

问题描述 投票:1回答:1

我要创建一个反向的家族树(谱系),该树从孩子开始,直到第一对夫妇为止显示整个行。我的数据库有1000个条目,并具有一个架构和随附的示例,如下所示:

0 id    |   17444
5 Sire  |   100
6 did   |   203
7 Dam   |   102
11 Name |   Bruce

[孩子在哪里以姓名表示,并且确实如此。条目Dam和Sire也是dids。

我尝试过以下操作:

def pedigree(did):
    con = sqlite3.connect('subjects.db')
    cursor = con.execute('SELECT * FROM animals where did IS "%s" ' % did)
    for row in cursor:
        print(row[11])
        pedigree(row[5])
        pedigree(row[7])

打印出一堵文字墙,例如:

Bruce
Thomas
Martha
Partick
Sara
Kenneth
Catherine

我以为我应该使用某种ADT,但是自大学以来,我并没有对此感到困惑。任何有用的建议都将是很棒的!这不是学校的作业,而是我妻子想要的东西,哈哈。

这个问题与我的问题几乎相同,并且他们已经得到了足够的答案:Pedigree/Family tree chart from database

我要创建一个反向的家族树(谱系),该树从孩子开始,直到第一对夫妇为止显示整个行。我的数据库有1000个条目,并具有一个模式和...

python sql sqlite select recursive-query
1个回答
2
投票

一种选择是使用递归公用表表达式遍历层次结构:

© www.soinside.com 2019 - 2024. All rights reserved.