我有两个表,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 (?, ?)
非常感谢任何帮助或指导!谢谢。