SQL Alchemy - WHERE返回(?,?)

时间:2018-04-11 08:12:22

标签: python sqlalchemy

我有两个表,A和B.我想使用SQL Alchemy(引擎是SQL Lite)在A和B之间选择和连接基本查询。然后,我想要一个子查询,将where子句添加到语句的末尾。

基本查询在具有以下代码的类中正常工作:

Class Example:

def base_query(self):
    query = self.db_session.query(A).join(
        B, B.id == A.id)
    return query

我想在我的类中使用另一个名为query_ids的方法来使用base_query并添加一个SQL WHERE子句。我尝试了以下代码:

    def query_ids(self, ids=[]):
    if isinstance(ids, str):
        ids = [ids]
    base_query = self.base_query()
    sub_query = A.id.in_(ids)
    return base_query.filter(sub_query)

这似乎不起作用,我不确定为什么即使在这里进行了不少搜索。 SQL语句看起来与基本查询合理,但WHERE子句不是 - 打印语句显示:

WHERE A.id IN (?, ?)

非常感谢任何帮助或指导!谢谢。

0 个答案:

没有答案