使用自定义查询

时间:2017-03-15 13:56:39

标签: python mysql sql-server orm sqlalchemy

对于我的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

0 个答案:

没有答案