SQLAlchemy zapytanie o filtr według powiązanego obiektu
Za pomocąSQLAlchemy, Mam relację jeden do wielu z dwoma tabelami - użytkownikami i wynikami. Próbuję wysłać zapytanie do 10 najlepszych użytkowników posortowanych według ich zagregowanego wyniku w ciągu ostatnich X dni.
users:
id
user_name
score
scores:
user
score_amount
created
Moje obecne zapytanie brzmi:
top_users = DBSession.query(User).options(eagerload('scores')).filter_by(User.scores.created > somedate).order_by(func.sum(User.scores).desc()).all()
Wiem, że to oczywiście nie jest poprawne, to tylko moje najlepsze przypuszczenie. Jednak po zapoznaniu się z dokumentacją i googlem nie mogę znaleźć odpowiedzi.
EDYCJA: Być może pomoże, jeśli naszkicuję to, coMySQL zapytanie wyglądałoby tak:
SELECT user.*, SUM(scores.amount) as score_increase
FROM user LEFT JOIN scores ON scores.user_id = user.user_id
WITH scores.created_at > someday
ORDER BY score_increase DESC