私は自分のプロジェクトでsqlalchemyを使用しています。
2つ以上のテーブルが結合されているか、外部キーの関係がある場合に1つの問題が発生し、where条件で結合されたテーブルの属性を照会できません。
例えば。通知テーブルがあり、ユーザーテーブルuser.idはnotice.senderの外部キーです。user.nameで通知を検索したいです。
通知テーブル:[id、sender(FK user.id)、receiver(FK user.id)、subject、message、status]
ユーザーテーブル:[ID、名前、メールアドレス、アドレス、ステータス]
通知モデルに参加する:
sender_user = relationship('User', primaryjoin='Notice.sender==user.id', backref=backref("sender_user"))
receiver_user = relationship('User', primaryjoin='Notice.receiver==user.id', backref=backref("receiver_user"))
SQL alchemyフィルタークエリ:
user_name='john'
notice=db_session.query(Notice)
notice = notice.filter(Notice.sender_user.name == user_name)
次のクエリは機能しません:
notice=db_session.query(Notice)
notice = notice.filter(Notice.user.name == user_name)
助けてください!