在连接后使用filter_by
会导致错误,因为SQLAlchemy会尝试在联接表中而不是原始列中查找该列。
有解决方法吗?就像取消联接一样,过滤掉来自另一个表的东西。
例如,假设我正在过滤表A中的行,因为它与表B中某些行的关系。之后我想过滤一些表A字段,但是当使用filter_by时它会出错。
答案 0 :(得分:1)
您可以使用filter
。它类似于filter_by
,但您明确使用列表达式而不是关键字参数。这允许您指定所需列的表:
joined_query.filter(A.field == something)
答案 1 :(得分:0)
使用filter_by:
join_query.filter_by(Table.column1='value')
使用过滤器:
join_query.filter(Table.column1 == 'value')