Ответы пользователя по тегу Python
  • Как перевести на Sqlalchemy старый код, использующий SQL через pyodbc?

    @euspensky
    в sqlalchemy отличная документация с кучей примеров
    конкретно по составлению запросов - тут

    конкретно этот запрос можно записать почти как в sql
    условие для join'а D и P можно не прописывать так как есть соответсвующий relationship

    D = TblAlertDescription
    P = t_TBL_ALERT_PROJECTCORR
    PRC = t_TBL_CONF_PROJECTRSSFEEDCORR
    
    query = session. \
        query(D.ALERT_ID). \
        select_from(D). \
        join(P). \
        join(PRC, P.c.PROJECT_ID == PRC.c.PROJECT_ID). \
        filter(D.STATUS_ID == 1,
               D.alert_type_id == 5,
               PRC.c.RSS_LOCATION_ID == 1)
    
    print query

    ->
    SELECT "TBL_ALERT_DESCRIPTION"."ALERT_ID" AS "TBL_ALERT_DESCRIPTION_ALERT_ID" 
    FROM "TBL_ALERT_DESCRIPTION" JOIN "TBL_ALERT_PROJECTCORR" ON "TBL_ALERT_DESCRIPTION"."ALERT_ID" = "TBL_ALERT_PROJECTCORR"."ALERT_ID" JOIN "TBL_CONF_PROJECTRSSFEEDCORR" ON "TBL_ALERT_PROJECTCORR"."PROJECT_ID" = "TBL_CONF_PROJECTRSSFEEDCORR"."PROJECT_ID" 
    WHERE "TBL_ALERT_DESCRIPTION"."STATUS_ID" = ? AND "TBL_ALERT_DESCRIPTION".alert_type_id = ? AND "TBL_CONF_PROJECTRSSFEEDCORR"."RSS_LOCATION_ID" = ?
    Ответ написан
    1 комментарий