Cómo ejecutar la “unión externa izquierda” en SqlAlchemy

Necesito ejecutar esta consulta ::

select field11, field12 from Table_1 t1 left outer join Table_2 t2 ON t2.tbl1_id = t1.tbl1_id where t2.tbl2_id is null 

Tuve estas clases en python:

 class Table1(Base): .... class Table2(Base): table_id = Column( Integer, ForeignKey('Table1.id', ondelete='CASCADE'), ) .... 

¿Cómo llego a lo de arriba de lo de abajo?

 q = session.query(Table1.field1, Table1.field2)\ .outerjoin(Table2)\ # use in case you have relationship defined # .outerjoin(Table2, Table1.id == Table2.table_id)\ # use if you do not have relationship defined .filter(Table2.tbl2_id == None) 

debe hacerlo, asumiendo que field1 y field2 son de field2 , y que usted define una relación:

 class Table2(Base): # ... table1 = relationship(Table1, backref="table2s") 

También puedes hacer eso usando SQLAlchemy Core solamente:

 session.execute( select(['field11', 'field12']) .select_from( Table1.outerjoin(Table2, Table1.tbl1_id == Table2.tbl1_id)) .where(Table2.tbl2_id.is_(None)) ) 

PS .outerjoin(table, condition) es equivalente a .join(table, condition, isouter=True) .