【问题标题】:Reformatting a query result in SQLAlchemy在 SQLAlchemy 中重新格式化查询结果
【发布时间】:2016-07-01 04:00:51
【问题描述】:

SQL 查询不仅可以得到一堆列作为结果,而且可以同时将其形成有用的东西。例如:

select Person.name + " likes " + Food.name as all_i_want_as_a_result from Food, Person where Food.id == Person.favourite_food

但是我怎样才能对 SQLAlchemy 做同样的事情呢?例如:

query = db.session.query(Food, Person).filter(Food.id == Person.favourite_food) <-- how do I modify this line?
for row in db.session.execute(query)
    print row

预期的输出是:

Alice likes icecream
Bob likes pizza

【问题讨论】:

  • 您好,我们俩同时编辑,破坏了系统。能否请您重新edit 帖子。很抱歉给您带来不便
  • 不用担心。但我觉得没问题,我不会改变。
  • 感谢您将 beef 更改为 burger

标签: python sql django orm sqlalchemy


【解决方案1】:

你可以查询.query()里面的任意东西:

query = db.session.query(Person.name.concat(" likes ").concat(Food.name).label("all_i_want_as_a_result"))
                  .filter(Food.id == Person.favourite_food)
print query

打印出来:

SELECT "Person".name || ? || "Food".name AS all_i_want_as_a_result 
FROM "Person", "Food" 
WHERE "Food".id = "Person".favourite_food

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-09
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多