首页 > 解决方案 > 将同表连接的 SQL 语句转换为 SQLAlchemy

问题描述

我有一个有效的 Postgres SQL 语句,它执行一个表——question加入自身以仅提取具有foo最新匹配列的行created_data

SELECT q.*
FROM question q
INNER JOIN
    (SELECT foo, MAX(created_date) AS most_current
    FROM question
    GROUP BY foo) grouped_q 
ON q.foo = grouped_q.foo 
AND q.created_date = grouped_q.most_current

我很感兴趣是否以及如何将其转换为 SQLAlchemy,以便我可以将结果行用作 ORM 对象?

而且,如果知道的话,可能会有什么样的性能差异?

FWIW,我可以通过遍历行并执行以下操作来水合 SQLAlchemy ORM 对象......

for row in res.fetchall():
    question = Question(**dict(zip(res.keys(), row)))

但这感觉很笨拙,如果可能的话,我想将查询保留在 SQLAlchemy 语法中。

提前致谢。

标签: pythonpostgresqlsqlalchemy

解决方案


推荐阅读