所以可以说我有一些这样定义的简单类
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 循环和缺乏查询让我认为这是一个不太理想的解决方案。