My database looks something like this:
class ModelA(BaseModel):
id = AutoField()
b = ForeignKeyField(ModelB)
c = ForeignKeyField(ModelC)
extra = CharField()
class ModelB(BaseModel):
id = AutoField()
a = ForeignKeyField(ModelA)
c = ForeignKeyField(ModelC)
extra = CharField()
class ModelC(BaseModel):
id = AutoField()
b = ForeignKeyField(ModelB)
a = ForeignKeyField(ModelA)
extra = CharField()
and I want to perform a query to get rows from ModelA joined with ModelB where ModelA.c.id are certain values.
Something like:
sample = ModelA.select(ModelA, ModelB)
.join(ModelB, on=ModelA.b)
.where(ModelA.c.id = specific_c_id)
This doesn't work. But I think I am misunderstanding something about how .where() works after the .join(). Or maybe I need to use aliases (which I don't fully understand). What is the right way to perform a query like this?
If you want to query for a specific value in the
ModelA.c
, then: