我有两个 sql 表(messages、messages_processed),两者都很相似。messages_processed 表比消息多一列,其他列的数据类型/结构在两者中都是相同的。在显示特定用户的所有消息(已处理/常规)时,应应用这两个表的联合。
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()