【发布时间】:2016-05-07 20:56:09
【问题描述】:
我无法找到这个问题的答案,但我确信它一定在某个地方。 我的问题类似于这个问题:sqlalchemy: how to join several tables by one query?
但我需要一个查询结果,而不是一个元组。我无权访问模型,因此无法更改它,也无法修改函数以使用元组。
我有两个表,UserInformation 和 MemberInformation,它们都有一个外键并与 Principal 有关系,但彼此之间没有关系。
如何在一个查询中从两个表中获取所有记录和列? 我试过了:
query = DBSession.query(MemberInformation).join(UserInformation, MemberInformation.pId == UserInformation.pId)
但它只返回 MemberInformation 的列
和:
query = DBSession.query(MemberInformation, UserInformation).join(UserInformation, MemberInformation.pId == UserInformation.pId)
但这会返回一个元组。
我在这里错过了什么?
【问题讨论】:
-
您希望如何查看查询结果? .all() 怎么样 - 它会返回一个列表
-
我知道,但我特别需要一个查询对象。我对其进行进一步的操作等
-
查看答案stackoverflow.com/a/6045131/2372812 - 您可以在
query()部分中放置多个表格。 -
例如使用
query(table1, table2).filter(table1.thing == table2.other_thing) -
那个答案返回一个元组
标签: python sql sqlalchemy