加入后使用filter_by

时间:2014-06-22 18:51:53

标签: python sqlalchemy

在连接后使用filter_by会导致错误,因为SQLAlchemy会尝试在联接表中而不是原始列中查找该列。

有解决方法吗?就像取消联接一样,过滤掉来自另一个表的东西。

例如,假设我正在过滤表A中的行,因为它与表B中某些行的关系。之后我想过滤一些表A字段,但是当使用filter_by时它会出错。

2 个答案:

答案 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')