1

だから、そのように定義されたいくつかの単純なクラスがあるとしましょう

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 ループとクエリの欠如により、これは理想的とは言えない解決策であると思われます。

4

1 に答える 1