Долго боролся с проблемой, я решил ее через пару минут после публикации моего вопроса здесь.Решением было сохранить, а затем повторно использовать все таблицы с псевдонимами.До того, как я использовал псевдоним в соединении, а затем тот же псевдоним для таблицы для извлечения ссылки на столбец в SELECT, что приводило к избыточности и разрыву: «ОТ детали AS foo, детали AS bar, master JOIN деталь ... JOIN деталь ...»
Рабочее решение:
создать пустой словарь для таблиц с псевдонимами: {"имя таблицы": объект таблицы} для каждого регистра регистрации присоединения master-detail новая таблица с псевдонимом в словаре:
detail_table = Table(name,...).alias(alias) tables[alias] = detail_table
присоединиться к следующей псевдониму таблицы:
expression = join(expression, detail_table)
При сборе полей для SELECT не получать другую таблицу (имя, ...), а получать из списка псевдонимов таблицы:
column = tables[table_name].c[column_name]