[英]How to make a subquery in sqlalchemy
SELECT *
FROM Residents
WHERE apartment_id IN (SELECT ID
FROM Apartments
WHERE postcode = 2000)
我正在使用 sqlalchemy 并尝试执行上述查询。 我无法使用db.engine.execute(sql)
作为原始 SQL 执行它,因为它抱怨我的关系不存在......但我成功地使用这种格式查询我的数据库: session.Query(Residents).filter_by(???)
。 但是,我无法弄清楚如何使用这种格式构建我想要的查询。
我只是想补充一点,如果您使用这种方法来更新数据库,请确保您添加了synchronize_session='fetch'
kwarg。 所以它看起来像:
subquery = session.query(Apartments.id).filter(Apartments.postcode==2000).subquery()
query = session.query(Residents).\
filter(Residents.apartment_id.in_(subquery)).\
update({"key": value}, synchronize_session='fetch')
否则你会遇到问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.