私は困惑しています。したがって、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でこのクエリを作成する簡単な方法がありますが、困惑しています. 誰でも「正しい」方法を教えてもらえますか?