SQLAlchemy का उपयोग करके, मेरे पास दो तालिकाओं - उपयोगकर्ताओं और स्कोर के साथ कई संबंध हैं। मैं पिछले 10 दिनों में अपने कुल स्कोर द्वारा क्रमबद्ध शीर्ष 10 उपयोगकर्ताओं से पूछताछ करने की कोशिश कर रहा हूं।संबंधित ऑब्जेक्ट द्वारा SQLAlchemy फ़िल्टर क्वेरी
users:
id
user_name
score
scores:
user
score_amount
created
मेरे वर्तमान क्वेरी है:
top_users = DBSession.query(User).options(eagerload('scores')).filter_by(User.scores.created > somedate).order_by(func.sum(User.scores).desc()).all()
मैं जानता हूँ कि यह स्पष्ट रूप से सही नहीं है, यह सिर्फ मेरी सर्वश्रेष्ठ अनुमान दिया है। हालांकि, प्रलेखन और googling को देखने के बाद मुझे एक जवाब नहीं मिल रहा है।
संपादित करें:
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
त्रुटि अपने में शामिल होने के लिए इस से समझाया गया है एफएक्यू एंट्री: http: //www.sqlalchemy।org/Trac/wiki/पूछे जाने वाले प्रश्न # ImusinglazyFalsetocreateaJOINOUTERJOINandSQLAlchemyisnotconstructingthequerywhenItrytoaddaWHEREORDERBYLIMITetc.whichreliesupontheOUTERJOIN – zzzeek