我有一个表,该表具有对象之间自相关的自相关,不对称的多对多关系。我使用这种关系在对象之间创建了可靠的树。
具有一组对象ID,我想获取依赖树中某处的所有对象。
这是一个示例对象表:
+----+------+
| ID | Name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |
+----+------+
关系表:
+------------+-----------+
| Dependancy | Dependant |
+------------+-----------+
| 2 | 1 |
| 3 | 2 |
| 4 | 1 |
+------------+-----------+
显示A (ID: 1)
取决于B(2)
和D(4)
,而B(2)
取决于C(3)
。
现在,我想构造一个单个SQL查询,该查询将给定{1}
作为具有单个ID的集合,将返回A
的依赖树中的四个对象:A
, B
,D
和C
。
另外,也可以使用一个查询来获取所有所需的对象ID,而使用另一个查询来获取其实际数据。
无论依赖项/层次结构树中的级别数如何,这都应该有效。
我将对Postgresql 10数据库的SQLAlchemy示例或纯SQL感到满意(稍后将了解如何使用SQLAlchemy进行实现)。
谢谢!