Я использую ORM Mapping в SQLAlchemy 0.6.8.
У меня есть три таблицы (A, B и C) без внешних ключей между ними.
Я пытаюсь объединить таблицы A и B, а затем оставил внешнее соединение с C. Это ожидание именованного кортежа с полями A, B и C - с полем C, иногда равным None.)
Я могу сделать первое объединение достаточно легко, просто выбрав обе таблицы.
(session.query(A, B)
.filter(A.some_field = B.some_other_field))
Это дает мне NamedTuple с полями A и B.
Затем я добавляю внешнее соединение, чтобы сделать его:
(session.query(A, B)
.filter(A.some_field==B.some_other_field))
.outerjoin((C, A.some_field==C.some_different_field))
Результат имеет только две таблицы. Я не могу получить доступ к другим полям C (даже в тех случаях, когда они присутствуют).
Как правильно выполнить левое внешнее соединение, чтобы получить доступ к полям самой правой таблицы ??
Я бы предпочел не отступать от базового SQL, если бы мог его избежать - я пытаюсь научиться использовать в своих интересах ORM.