在我的项目设置中,查询正在基于SQLAlchemy进行。
根据我以前的要求,我已经用两个查询完成了联合。
现在我需要通过三个查询来做联盟。
代码如下:
query1 = query1.filter(model.name == "in-addr.arpa.")
query2 = query2.filter(model.tenant_id.in_(tenant_ids))
query = query1.union(query2)
现在我需要再添加一个查询,如下所示:
query3 = query3.filter(model.tenant_id == context.tenant_id)
所以我需要在所有三个查询中执行Union。
答案 0 :(得分:3)
这就是我在SQLAlchemy 1.3中做到的方式
from sqlalchemy import union
query1 = query1.filter(model.name == "in-addr.arpa.")
query2 = query2.filter(model.tenant_id.in_(tenant_ids))
query3 = query3.filter(model.tenant_id == context.tenant_id)
all_queries = [query1, query2, query3]
golden_set = union(*all_queries)
此处的更改是并集方法接受SQLAlchemy可选项的列表。
答案 1 :(得分:2)
解决方案如下:
query1 = query1.filter(model.name == "in-addr.arpa.")
query2 = query2.filter(model.tenant_id.in_(tenant_ids))
query3 = query3.filter(model.tenant_id == context.tenant_id)
query = query1.union(query2,query3)