【发布时间】:2014-10-15 15:00:39
【问题描述】:
如果我在 SQLAlchemy 查询中指定映射类(~= 数据库表),则返回的行将包含这些类的实例:
q = sess.query(table1, table2, table3.string_column)
q.first()
==> ( <instance of table1>,
<instance of table2>,
'string' )
但是,如果我从子查询中选择,则返回的行包含单个列而不是类实例:
q = sess.query(table1, table2, table3.string_column)
q2 = sess.query( q.subquery() )
q2.first()
==> ( col1_of_table1, col2_of_table1, ...,
col2_of_table2, col2_of_table2, ...,
'string' )
有没有办法指定我想将子查询中的行保留为映射类的实例?
如果不加入映射类的新实例,我无法弄清楚如何做到这一点。 corresponding_column 方法允许我从子查询中引用特定的列,但我不知道如何从子查询中引用完整的实体。我尝试过使用select_from,但它并没有给我正确的行为。
有什么建议吗?
【问题讨论】:
标签: python-2.7 sqlalchemy