我有2张桌子,分别是Case和Motion。我有以下查询:
queries = db.session.query(Case.summary, Case.motion_id, Motion.id, Motion.summary).filter(Case.motion_id == Motion.id)
如果要打印Case.summary,我可以执行以下经过测试可以正常工作的内容:
for query in queries: logging.error(query.summary)
但是,如果我想同时打印Case和Motion的摘要(即Case.summary和Motion.summary),我应该如何编写for循环?
我尝试过:
logging.error(query.summary + " | " + query.motion.summary)
和
logging.error(query.summary + " | " + query.motion_summary)
,但两个都没有打印动作摘要。有想法吗?
答案 0 :(得分:0)
我已经找到了解决问题的方法。您将需要使用标签,该标签用其他名称标记该列。就像在SQL中编写“ AS”一样:
Select id AS motion_id FROM motion
就SQLAlchemy而言,在views.py中这样编写查询:
queries = db.session.query(Case.summary.label('case_summary'), Case.motion_id.label('case_id'), Motion.id.label('motion_id'), Motion.summary.label('motion_summary').filter(Case.motion_id == Motion.id)
现在我的列被调用并标记为'case_summary','case_id'等。
因此我可以通过以下方式登录:
for query in queries:
logging.error(query.case_summary)
logging.error(query.motion_summary)
希望这会有所帮助!
谢谢@snakecharmerb的指导。