sqlalchemy:联合后的订单查询

sqlalchemy:联合后的订单查询,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我有两个不同的表,但两个表都有一个日期对象。我想同时查询这两个表,以获得按日期排序的对象的混合列表。 我需要一步完成这项工作,以便使用paginate命令。我不能只是查询两个列表,然后再合并它们 更新:我试过了 dummy = query1.union(query2).order_by('date').all() 但这会导致 ArgumentError: All selectables passed to CompoundSelect must have identical numbers o

我有两个不同的表,但两个表都有一个日期对象。我想同时查询这两个表,以获得按日期排序的对象的混合列表。 我需要一步完成这项工作,以便使用paginate命令。我不能只是查询两个列表,然后再合并它们

更新:我试过了

dummy = query1.union(query2).order_by('date').all()
但这会导致

ArgumentError: All selectables passed to CompoundSelect must have identical numbers of columns; select #1 has 8 columns, select #2 has 24
谢谢
卡尔

这不是一个完美的解决方案,因为它需要深入了解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"))

如何按(日期)包含订单条件?请注意,日期列在一个表中称为date,在另一个表中称为vote_datetime。。。