对于我的python应用程序,我使用SQLAlchemy(带Flask)和MySQL数据库。 我在代码中将表格作为ORM。
但是,我的数据库被设计为受版本控制的数据库,而不是更新行,而是添加一个带有更改日期的新行。
例如
的表
栏目
- Upload_id(pk,fk)
- id(pk,fk)
- 名称
- 已删除(默认值:False)
上传
- id(pk)
- 上传(日期时间)
问题
我希望我的ORM加载对象和所有关系,但为每个ID加载最新版本(如果没有删除,则根本不加载任何版本)。
我在一个Query中创建了这个,但是我没有设法在Query对象中重新创建它,也没有任何线索在哪里调用它来“覆盖”正常的加载Query。
SELECT og.* FROM section og JOIN (
SELECT uu.id as u_id, i.id as s_id FROM upload uu JOIN (
SELECT MAX(u.upload) as maxu, s.id FROM vc_section s
JOIN upload u ON s.upload_id = u.id
GROUP BY s.id
) i ON uu.upload = i.maxu
) sss ON og.id = sss.s_id AND og.upload_id = sss.u_id