我有一个子查询:
sub_query = db.query(Table1.id).filter(Table1.id.in_(db.query(Table2.ref_col).filter(Table2.col1 == 'value')))
基本查询是
query = db.query(Table1).filter(Table1.col1 == 'value1' | Table1.col2 == 'value2')
现在我想将子查询附加为 OR 子句的一部分,以便 sql 输出为
SELECT * From Table1 where Table1.col1 = 'value1' or Table1.col2 = 'value2' or Table1.id in (select Table2.ref_id from Table2 where Table2.col1 = 'value')
在查询中添加子查询作为 OR 子句的正确方法是什么。
PS:我无法使用子查询初始化查询。我需要使用 ORM 在 where 子句中添加子查询。
非常感谢您的帮助
可能会使用
.subquery()
方法。
Table1.col1 == 'value1' | Table1.col2 == 'value2' | Table1.id.in_(sub_query.subquery())