如何在sqlalchemy中的另一个查询的select语句中使用子查询

2024-09-30 18:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在选择另一个查询时使用子查询:

subq = db.session.query(mytable).filter(mytable.col == '4').subquery('subq')
mainquery = db.session.query(subq).join(anothertable).filter(subq.id = anothertable.id).all()

问题是“mainquery”结果是只读的,我无法通过循环来更改其中的某个特定列,换句话说,我不能这样写:

for row in mainquery:
    row.col2 = 'newvalue'

错误是:AttributeError: can't set attribute

(这是一个简化的示例,因此将查询合并为一个查询并不是一个解决方案)


Tags: idfordbsessionmytablecolallfilter