SQL/SqlAlchemy:查询依赖关系中的所有对象

2024-06-28 11:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表,表中的对象之间有一个自身的、不对称的多对多依赖关系。我使用这种关系在对象之间创建一个可靠的树

有了一组对象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的依赖树中的四个对象:ABDC。 或者,使用一个查询获取所有需要的对象ID,使用另一个查询获取它们的实际数据也是可以接受的

无论依赖关系/层次结构树中的级别有多少,这都应该是有效的

我很乐意为postgresql 10数据库提供一个SQLAlchemy示例或纯SQL(稍后我将看到如何使用SQLAlchemy实现)

谢谢


Tags: 数据对象nameid示例sql层次结构sqlalchemy