반응형
SQLAlchemy에 대한 경험이 많지 않고 해결할 수없는 문제가 있습니다. 나는 검색을 시도했고 많은 코드를 시도했습니다. 이것은 내 클래스입니다 (가장 중요한 코드로 축소됨).
class Patient(Base):
__tablename__ = 'patients'
id = Column(Integer, primary_key=True, nullable=False)
mother_id = Column(Integer, ForeignKey('patients.id'), index=True)
mother = relationship('Patient', primaryjoin='Patient.id==Patient.mother_id', remote_side='Patient.id', uselist=False)
phenoscore = Column(Float)
어머니의 페 노스 코어가 == 10
인 모든 환자를 쿼리하고 싶습니다.
말했듯이 많은 코드를 시도했지만 이해하지 못했습니다. 내 눈에 논리적으로 해결책은
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
출력 할 때 각 요소에 대해 .mother.phenoscore
에 액세스 할 수 있지만이 코드는이를 수행하지 않기 때문입니다.
관계의 속성으로 필터링 할 수있는 (직접) 가능성이 있습니까 (SQL 문 또는 추가 조인 문을 작성하지 않고), 이러한 종류의 필터가 두 번 이상 필요합니다.
쉬운 해결책이 없더라도 모든 답을 얻을 수있어서 기쁩니다.
해결 방법
patients = Patient.query.filter(Patient.mother.has(phenoscore=10))
또는 가입 (일반적으로 더 빠름) :
patients = Patient.query.join(Patient.mother, aliased=True) .filter_by(phenoscore=10)
참조 페이지 https://stackoverflow.com/questions/8561470
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python을 사용하여 웹 사이트에 로그인하고 양식을 작성한 다음 로그 아웃 (0) | 2020.09.21 |
---|---|
파이썬 ctypes에 대해 런타임시 LD_LIBRARY_PATH 변경 (0) | 2020.09.21 |
파이썬 PyMongo를 사용하여 MongoDB에서 새 데이터베이스를 생성하려면 어떻게해야합니까? (0) | 2020.09.21 |
파이썬 후행 0을 포함하여 소수점 이하 n 자리까지 부동 소수점을 인쇄하는 방법은 무엇입니까? (0) | 2020.09.21 |
파이썬 배열에 요소가 있는지 확인하십시오. (0) | 2020.09.21 |
댓글