在django搜索应用程序中,我想查询clickhouse数据库(使用infi.clickhouse\ orm库)中的成对值,例如(a=1和b>=1.5)或(a=2和b>=1)。在sql中,这可以通过
select * from table where a == 1 and b >= 1.5 UNION ALL select * from table where a == 2 and b >= 1
看看我尝试过的其他例子:
查询集定义为
qs = TABLE.objects_in(db)
qs_1 = qs.filter(A__eq=1, B__gte=1.5)
qs_2 = qs.filter(A__eq=2, B__gte=1)
操作员
qs_union = qs_1 | qs_2
它回来了
unsupported operand type(s) for |: 'QuerySet' and 'QuerySet'
联合运营者
qs_union = qs_1.union(qs_2)
它回来了
'QuerySet' object has no attribute 'union'
以及q对象
qs_union = qs.filter(Q(A__eq=1, B__gte=1.5) | Q(A__eq=2, B__gte=1))
它回来了
'Q' object has no attribute 'to_sql'
在clickhouse模型中,如何执行2个或更多查询集的并集?
谢谢!
1条答案
按热度按时间gopyfrb31#
简而言之:你应该使用
Q
等级infi.clickhouse_orm.query
,例如:这个
Q
-上课时间info.clickhouse_orm
[github]有一个to_sql
方法:因为错误说明找不到
to_sql
,看起来你没用Q
-同学们,但djangoQ
班级。