如何使用SQLalchemy Core动态连接多个表?

Mar*_*nes 4 python sqlalchemy

我有一个父表,其中包含几个子表的主键.子表的数量在运行时可以是任意的.使用SQLalchemy核心,如何将多个子表连接到此父级?

假设我有类sqlalchemy.schema.Table的表,有效FK约束; 我该如何构造这个查询?

我试过ie;

childJoins= [sa.join(parentTable,childTables[0]),sa.join(parentTable,childTables[1])]
# childTables is a list() of Table objects who are guaranteed linked by pk 

qry = sa.select(["*"],from_obj=childJoins)
Run Code Online (Sandbox Code Playgroud)

这使;

SELECT * 
FROM 
parentTable JOIN child1 ON child1.P_id = parentTable.C1_Id, 
parentTable JOIN child2  ON child2.P__id = parentTable.C2_Id
Run Code Online (Sandbox Code Playgroud)

所以parentTable被列出两次......

尝试使用join()等更多的变体来看看文档,但我仍然无法得到我想要的东西;

SELECT *
FROM parentTable
JOIN child1 ON parentTable.C1_Id=child1.P_Id
JOIN child2 ON parentTable.C2_Id=child2.P_Id 
...
JOIN childN ON parentTable.CN_Id=childN.P_Id
Run Code Online (Sandbox Code Playgroud)

Aud*_*kas 6

只需链接连接:

childJoins = parentTable
for child in childTables:
    childJoins = childJoins.join(child)

query = sa.select(['*'], from_obj=childJoins)
Run Code Online (Sandbox Code Playgroud)