SQLAlchemy 添加子查询作为 OR 子句

问题描述 投票:0回答:1

我有一个子查询:

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 子句中添加子查询。

非常感谢您的帮助

sql sqlalchemy orm
1个回答
0
投票

可能会使用

.subquery()
方法。

Table1.col1 == 'value1' | Table1.col2 == 'value2' | Table1.id.in_(sub_query.subquery())
© www.soinside.com 2019 - 2024. All rights reserved.