我可以找到上面或下面的下一个值,但我无法弄清楚如何通过一个查询获得两个值,而且我觉得我已经迷失了连接,别名和{{ 1}}?
所以subqueries
if x = 2450:
这是def get_next_XP_goal(xp):
session = DbSessionFactory.create_session()
xp_gaol = session.query(XPAchievement) \
.filter(XPAchievement.XP_required > xp) \
.order_by(XPAchievement.XP_required.asc()) \
.first()
return xp_gaol
,这很棒。
3100
这是def get_previous_XP_goal(xp):
session = DbSessionFactory.create_session()
xp_gaol = session.query(XPAchievement) \
.filter(XPAchievement.XP_required <= xp) \
.order_by(XPAchievement.XP_required.desc()) \
.first()
return xp_gaol
,这很棒。
答案 0 :(得分:0)
你可以使用limit():
session.query(XPAchievement) \
.filter(XPAchievement.XP_required <= xp) \
.order_by(XPAchievement.XP_required.desc()) \
.limit(3)
然后是第一个,最后一个是上一个和下一个