使用sqlAlchemy查询打印特定的列字段

时间:2019-05-16 08:02:16

标签: python sqlalchemy

我有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)

,但两个都没有打印动作摘要。有想法吗?

1 个答案:

答案 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的指导。