@pcdesign

Как составить запрос к 3-м таблицам во Flask SQLAlchemy?

Переписываю один сайт.
И там есть достаточно много вот такого рода запросов к MySQL базе.

SELECT b.id, 
DATE_FORMAT(  b.date  , " %d.%m.%Y " ) AS date, 
b.item_name , c.desc_rus , a.email
FROM users a, user_item b, lang c 
WHERE a.id = ?
AND a.id = b.user_id
AND c.code = b.dest_lang
ORDER BY b.date ASC


Два вопроса:
1) Стоит ли в принципе такие запросы переводить на SQLAlchemy или правильнее обрабатывать их в raw, то есть как есть?

2) Если 1-ый пункт да, то как такой запрос составить?
  • Вопрос задан
  • 2549 просмотров
Решения вопроса 1
@sormon
инженер-программист =)
Вообще, хорошо бы структуру увидеть, т.к. не понятны связи между таблицами (есть ли там fk)
Ну а так, если предположить, что в запросе идет связка по fk, то как-то так:
session.query(User).join(UserItem, Lang)
Дальше выбирать те поля, которые вам нужны.
Второй вариант:
session.query(UserItem.id, UserItem.date, UserItem.item_name, Lang.desc_rus, User.email).join(User, Lang)

Если не указаны fk, то, к примеру, использовать add_entity.
Здесь очень сложно рассуждать, без знания того, как описаны таблицы в базе, как описаны модели в SQLA (иди там вообще может reflect), какая нагрузка и так далее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы