Использование filter_by после объединения

#python #sqlalchemy

#python #sqlalchemy

Вопрос:

Использование filter_by после объединения приводит к ошибке, поскольку SQLAlchemy пытается найти этот столбец в объединенной таблице вместо исходного.

Есть ли способ обойти это? Например, отсоединение после фильтрации по чему-либо из другой таблицы.

Например, скажем, я фильтрую строки из таблицы A из-за связи с определенным набором строк в таблице B. После этого я хочу отфильтровать некоторые поля таблицы A, но при использовании filter_by это выдает ошибку.

Комментарии:

1. Пожалуйста, покажите нам ваш код и ошибки.

Ответ №1:

Вы можете использовать filter . Это похоже filter_by , но вы явно используете выражения столбцов вместо аргументов ключевых слов. Это позволяет вам указать таблицу, столбец которой вы хотите:

 joined_query.filter(A.field == something)
  

Ответ №2:

Использование filter_by:

 join_query.filter_by(Table.column1='value')
  

Использование фильтра:

 join_query.filter(Table.column1 == 'value')