2 つの SQL テーブル (messages、messages_processed) がありますが、どちらも似ています。messages_processed テーブルには、メッセージ 1 よりも 1 つの列が多く、他の列のデータ型/構造は両方で同じです。特定のユーザーのすべてのメッセージ (処理済み/通常) を表示する際に、これら 2 つのテーブルの結合を適用する必要があります。
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()