だから、そのように定義されたいくつかの単純なクラスがあるとしましょう
class Person
birthday
class Address
state
そして、各州の最年長の人が欲しいのですが、次のようなもので取得できると思います
db.session.query(Address).order_by(Person.birthday.desc()).first()
しかし今、私は別のクラスを追加します
class pet
species
そして、種の種類ごとに各州の最年長者を見つけたいので、次から...
john - MI - dog - 50
alex - MI - dog - 51
joe - MI - cat - 10
tina - FL - cat - 20
私はちょうどしたいです
alex, joe, tina
しかし、ジョンではありません。彼は最年長ではなかったからです。
それを行うためのクエリを作成するにはどうすればよいですか。どのトピックについて学ぶべきですか?
これはこれまでの私の最高の試みです。このコードは私のデータベースに固有のものです:
def most_recent_completed_uss(user):
lids = []
for o in user.organizations:
for sh in o.survey_headers:
for ss in sh.survey_sections:
l = datetime.datetime(1,1,1)
lid = None
for uss in ss.user_survey_sections:
if o.id == uss.organization.id:
if l == datetime.datetime(1,1,1):
lid = uss.id
if (uss.completed_date and uss.completed_date >= l):
l = uss.completed_date
lid = uss.id
lids.append(lid)
return lids
もちろん、4 つのネストされた for ループとクエリの欠如により、これは理想的とは言えない解決策であると思われます。