我有一个父表,其中包含多个子表的主键。子表的数量在运行时可以是任意的。使用 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