我有两个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()
答案 0 :(得分:0)
看起来你不能在你的情况下使用UNION,因为UNION中的每个SELECT语句必须具有相同的列数。