2016-08-10 12 views
2
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(???). 이 형식으로 원하는 쿼리를 작성하는 방법을 알 수는 없습니다.sqlalchemy에서 하위 쿼리를 작성하는 방법

답변

3

당신은 subquery 방법으로 하위 쿼리를 생성 할 수 있습니다

subquery = session.query(Apartments.id).filter(Apartments.postcode==2000).subquery() 
query = session.query(Residents).filter(Residents.apartment_id.in_(subquery)) 
관련 문제