Estoy utilizando la asignación de ORM en SQLAlchemy 0.6.8.Exterior Únase a la asignación de ORM en SQLAlchemy
Tengo tres tablas (A, B y C), sin claves externas entre ellas.
Estoy tratando de unirse a la tabla A y B, y luego a la izquierda combinación externa que con C. Estoy esperando un llamado tupla, con los campos A, B y C -. Con el campo C a veces en Ninguno)
Puedo hacer la primera unión fácilmente con solo seleccionar ambas tablas.
(session.query(A, B)
.filter(A.some_field = B.some_other_field))
Eso me consigue un NamedTuple con los campos A y B.
Luego agregar la combinación externa, para que sea:
(session.query(A, B)
.filter(A.some_field==B.some_other_field))
.outerjoin((C, A.some_field==C.some_different_field))
El resultado sólo cuenta con dos mesas. No puedo acceder a los otros campos de C (incluso en los casos en que están presentes).
¿Cuál es la forma correcta de hacer una combinación externa izquierda, para obtener acceso a los campos de la tabla de la derecha?
Preferiría no recurrir al SQL básico si pudiera evitarlo, estoy tratando de aprender a aprovechar el ORM.
Estoy tratando de averiguar si subconsultas y alias pueden proporcionar una solución, pero no se siente como la dirección correcta. – Oddthinking