2016-03-15 6 views
-1

SQL-запросы позволяют не просто получить кучу столбцов в результате, но и сформировать его во что-то usefult в одно и то же время. Например:Переформатирование результата запроса в SQLAlchemy

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 
+1

Привет, Мы оба отредактированы одновременно и нарушили систему , Можете ли вы, пожалуйста, отредактировать сообщение. Извините за неудобства –

+0

Не беспокойтесь. Но это выглядит хорошо для меня, я ничего не изменил бы. – Digital

+0

Спасибо за изменение * говядина * на * бургер *. –

ответ

0

Вы можете запросить для любых вещей внутри .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 
Смежные вопросы