我有一个包含一些文本字段和许多多对多关系的表。我在查询字段的时遇到问题。下面是我如何查询表:
with db.session(raise_err=True) as session:
result = session.query(
ClientKnowledge
).options(
*[defaultload(getattr(ClientKnowledge, table.table.name))
.load_only(KqFactory().get_tables([table.table.name])[0].get_pk().name)
for table in ClientKnowledge.__mapper__.relationships]
).filter(
ClientKnowledge.id == 1
)
这很好,SQLAlchemy为我做了所有的连接,并且很好地使用了lazy=joinedload
参数。在
当我在查询参数中指定字段时,我必须自己执行所有联接,但我不希望这样;还尝试使用with_entities()
并从关系的另一端进行查询,但得到的结果相同。在
有没有一种方法可以只查询特定字段而不丢失SQLAlchemy为我进行连接的能力?在
PS:我不能给出一个完整的工作示例,因为我所有的表都是动态生成的。如果需要更多的上下文,请告诉我。在
编辑:
下面是我的表的一个示例
^{pr2}$我想要的是能够查询ClientKnowledge.rel_字段1. 在
我试过:
session.query(ClientKnowledge.rel_field1)
但我必须自己去做。在
目前没有回答
相关问题 更多 >
编程相关推荐