Я ищу способ ссылки на объединенный стол внутри фильтра. Мой запрос:sqlalchemy join as new_name filter new_name.column == значение
session.query(A).outerjoin(B, C, D).filter(B.column_b == 1, C.column_c == 2)
Как я могу сделать такую фильтрацию без обозначения модели B и C?
session.query(A).outerjoin(B, C, D).filter_by(column_b=1, column_c=2)
не работает, потому что filter_by пытается найти «column_b» и «» column_c в D. псевдонимом() и псевдоним() тоже не работают.
Я получаю dict of field_to_value в форме {"column_a": 0, "column_b": 1, "column_c": 2}
И мне нужно создать запрос из него. Конечно, у меня могло бы быть картирование, например, {"column_a": A.column_b, "column_b": B.column_b, "column_c": C.column_c}
. Но должен быть лучший способ.
Есть ли хороший способ сделать такую фильтрацию?
Большое спасибо за ответ. Но этот подход все еще подразумевает, что я знаю имя столбца модели. Я уточнил вопрос, чтобы уточнить, чего я хочу достичь. – simpleranchero