sqlalchemy:UNION之后的订单查询

时间:2016-04-20 21:40:48

标签: sqlalchemy flask-sqlalchemy

我有两个不同的表,但两个表都有一个日期对象。我想同时查询两个表,以获得按日期排序的混合对象列表。 我需要一步完成,这样我就可以使用paginate命令了。我不能只查询两个列表,然后将它们组合起来。

更新:我试过

{{1}}

但结果是

{{1}}

感谢 卡尔

1 个答案:

答案 0 :(得分:-1)

这不是一个完美的解决方案,因为它需要深入研究SQLAlchemy内部。但这似乎有效。也许有人可以帮助完成它并使它更强大。

# You need to have Model.date in both query1 and query2. 
# No promises if your models are complex or have multiple columns called dates or something!
from sqlalchemy import text
base_query = query1.union(query2)
ordered_query = base_query.order_by(text(f"{next(i for i in base_query.column_descriptions if i['name']=='date')['expr'].name} desc"))