我有一个父表,其中包含几个子表的主键.子表的数量在运行时可以是任意的.使用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)
只需链接连接:
childJoins = parentTable
for child in childTables:
childJoins = childJoins.join(child)
query = sa.select(['*'], from_obj=childJoins)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2650 次 |
| 最近记录: |