Ich habe nicht viel Erfahrung mit SQLAlchemy und ich habe ein Problem, das ich nicht lösen kann. Ich habe versucht zu suchen und ich habe viel Code ausprobiert. Dies ist meine Klasse (reduziert auf den wichtigsten Code):
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)
und ich möchte alle Patienten befragen, deren Phenoscore der Mutter ist (zum Beispiel) == 10
Wie gesagt, ich habe viel Code ausprobiert, aber ich verstehe ihn nicht. Die logische Lösung wäre in meinen Augen
patients = Patient.query.filter(Patient.mother.phenoscore == 10)
Sie können .mother.phenoscore
bei der Ausgabe auf jedes Element zugreifen , dieser Code tut dies jedoch nicht.
Gibt es eine (direkte) Möglichkeit, nach einem Attribut einer Beziehung zu filtern (ohne die SQL-Anweisung oder eine zusätzliche Join-Anweisung zu schreiben), benötige ich diese Art von Filter mehr als einmal.
Auch wenn es keine einfache Lösung gibt, freue ich mich über alle Antworten.