Ответы пользователя по тегу Python
  • Как использовать union и join в одном SQLAlchemy запросе?

    drew_dru
    @drew_dru Автор вопроса
    query1 = self.session.query(ID_Streets, ID_Streets_history, ID_Nps, Modify_reason)\
                .outerjoin(ID_Streets_history, text('(ID_Streets.id_np=ID_Streets_history.id_np '\
                    'AND ID_Streets.id_street=ID_Streets_history.id_street)'))\
                .join(ID_Nps, ID_Nps.id_np == ID_Streets.id_np)\
                .outerjoin(Modify_reason, text('(ID_Streets_history.code_reason=Modify_reason.code_reason '\
                    'AND ID_Streets_history.code_detail=Modify_reason.code_detail)'))
    
    query2 = self.session.query(\
                    sql.null().label('id_streets_id_np'),\
                    sql.null().label('id_streets_id_street'),\
                    sql.null().label('id_streets_name_street'),\
                    sql.null().label('id_streets_type_street'),
                    ID_Streets_history, ID_Nps, Modify_reason)\
                    .select_from(ID_Streets_history, ID_Nps, Modify_reason)\
                    .outerjoin(ID_Nps, ID_Nps.id_np == ID_Streets_history.id_np)\
                    .outerjoin(Modify_reason, text(\
                        '(ID_Streets_history.code_reason=Modify_reason.code_reason '\
                        'AND ID_Streets_history.code_detail=Modify_reason.code_detail)'))
    
    query = query1.union(query2)
    Ответ написан
    Комментировать