0
我有两个sql表(message,messages_processed),两者都是相似的。 messages_processed表有一列比消息1多,其他列数据类型/结构在两者中都相同。在显示特定用户的所有消息(处理/常规)时,应该应用这两个表的联合。Sqlalchemy两个类似表的联盟
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()
谢谢。最终结果不需要采取行动。除行动外,联盟应与其他所有领域一起。简而言之,结果可以是消息的对象。 – limesoda
你有任何查询问题吗?它看起来绝对正确。 – drnextgis
我得到这个错误:传递给CompoundSelect的所有可选项必须具有相同的列数;选择#1有13列,选择#2有14_ – limesoda