我有一个父表,其中包含多个子表的主键。子表的数量可以在运行时任意。使用SQLalchemy核心,如何将多个子表连接到此父表?
假设我有一些具有有效FK约束的类Sqlalchemy.schema.Table的表;如何构造此查询?
我尝试过例如:
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)
给出了以下结果:
SELECT *
FROM
parentTable JOIN child1 ON child1.P_id = parentTable.C1_Id,
parentTable JOIN child2 ON child2.P__id = parentTable.C2_Id
所以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