3

私は困惑しています。したがって、peewee で定義された 3 つのモデルがあります。

class Patient(BaseModel):
    patientIdx = IntegerField()
    gender = CharField()
    firstName = CharField()
    middleInit = CharField()
    lastName = CharField()
    provider = ForeignKeyField(User)
    MRN = CharField()
    class Meta:
        database = database

class Metrics(BaseModel):
    metricId = CharField( )
    metricDescription = CharField()
    ptListDescription = CharField()
    class Meta:
        database = database

class PatientMetric(BaseModel):
    metric = ForeignKeyField(Metrics)
    patient = ForeignKeyField(Patient)
    class Meta:
        database = database

peewee を使用してこの mySQL クエリを表現しようとしています。

select m.metricId, p.id from
patient as p
join patientmetric pm on p.id = pm.patient_id
join metrics m on pm.metric_id = m.id
where provider_id = 91

基本的に、患者のリストと、特定のプロバイダーの指標の ID を教えてください。かなり単純ですが、ピーウィーにこれをさせる方法がわかりません。結合をチェーンしようとしましたが、peewee は外部キーを解決できません。たとえば、いくつかの異なる方法で .join と .from_ メソッドを使用してみました。

Metrics.select()
        .from_(
            PatientMetric.select().join(Patient).where(Patient.provider == provider),
            Metrics)
        .where(Metrics.id == PatientMetric.metric)

この場合、mySQL は、派生テーブルのエイリアスを作成する必要があると訴えました。私は間違ったツリーを吠えていると思います.peeweeでこのクエリを作成する簡単な方法がありますが、困惑しています. 誰でも「正しい」方法を教えてもらえますか?

4

1 に答える 1