我在我的项目中使用 sql alchemy。
当两个或多个表连接或具有外键关系时,我遇到一个问题,然后我无法在 where 条件下查询连接的表属性。
例如。我有通知表和用户表 user.id 是 notice.sender 的外键现在我想通过 user.name 搜索通知
通知表:[id, sender(FK user.id), receiver(FK user.id), subject, message, status]
用户表:[id, name, email, address, status]
加入通知模型:
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)
请帮忙!