+--------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| subject | int(11) | YES | | NULL | |
| relationship | varchar(266) | YES | | NULL | |
| target | int(11) | YES | | NULL | |
+--------------+--------------+------+-----+---------+-------+
如果我有一个ID,并且我想要获取它的子项,我将运行以下查询:
select subject from chebi_obo_relationships where target = %s and relationship="is_a";
这将为我提供关系'is_a‘的所有子项。然后我想找到所有那些孩子的孩子。我想继续下去直到再也没有孩子。最后,我想要一个源自我的原始根ID的子ID列表。
有没有一种有效的方法来做到这一点?我尝试了一个python脚本来递归地运行上面的查询,它需要几分钟才能生成大约100个结果。
注意:一个子节点可以有多个父节点
https://stackoverflow.com/questions/50999160
复制相似问题