Sqlalchemy两个相似表的并集

Sqlalchemy两个相似表的并集,sqlalchemy,Sqlalchemy,我有两个sql表(messages,messages\u processed),它们都是相似的。messages\u processed表比messages one多了一列,其他列的数据类型/结构在这两个表中都相同。在显示特定用户的所有消息(已处理/常规)时,应应用这两个表的并集 Class Message(object): def __init__(self, sender_id, text, user_id): self.sender_id = sender_id s

我有两个sql表(messages,messages\u processed),它们都是相似的。messages\u processed表比messages one多了一列,其他列的数据类型/结构在这两个表中都相同。在显示特定用户的所有消息(已处理/常规)时,应应用这两个表的并集

Class Message(object):
  def __init__(self, sender_id, text, user_id):
     self.sender_id = sender_id
     self.text = text
     self.user_id = user_id
     self.categories = [] #(N:M relation)
Class MessageProcessed(object):
  def __init__(self, sender_id, text, user_id, action):
     self.sender_id = sender_id
     self.text = text
     self.user_id = user_id
     self.categories = [] #(N:M relation)
     self.action = action
我无法更改表的现有结构。我需要做一些类似的事情,这将产生一个带有N:M映射的orm对象数组

session.query(Message).filter(Message.user_id==12)
                      .union(session.query(MessageProcessed)
                                    .filter(MessageProcessed.user_id==12)).all()

看起来您不能在案例中使用UNION,因为UNION中的每个SELECT语句必须具有相同的列数。

看起来您不能在案例中使用UNION,因为UNION中的每个SELECT语句必须具有相同的列数。

谢谢。在最终结果中不需要采取行动。Union应与除action之外的所有其他字段合并。简单地说,结果可以是消息的对象。您对查询有任何问题吗?它看起来绝对正确。我得到了这个错误:传递给CompoundSelect的所有Selectable必须具有相同的列数;select#1有13列,select#2有14列,那么有没有实现这一点的选项?谢谢。在最终结果中不需要采取行动。Union应与除action之外的所有其他字段合并。简单地说,结果可以是消息的对象。您对查询有任何问题吗?它看起来绝对正确。我得到了这个错误:传递给CompoundSelect的所有Selectable必须具有相同的列数;select#1有13列,select#2有14列,那么有没有实现这一点的选项?