【发布时间】:2013-05-31 16:51:17
【问题描述】:
是否有一个选项可以创建一个外部连接 2 个没有原始 sql 的查询集的查询集?
我有一个查询集命中 1 个表 -
queryset1 = Model1.objects.all()
我有另一个查询集命中 same 表并进行一些聚合 -
queryset2 = Model1.objects.filter(relatedField__days__range=(2013-05-11, 2013-05-13)).annotate(s1=Sum(relatedField__field1), s2=Sum(relatedField__field2))
我想在没有原始 sql 的情况下将第一个查询集与第二个查询集左外连接。 如您所见,第二个查询集是第一个查询集的子集。 问题是,我想返回表中的所有对象。 如果一个对象没有通过过滤器,我想在总和字段中显示 0。 这就是我想要外部连接的原因。
够清楚了吗?
【问题讨论】:
-
给出一个实际用例。您给出的示例可能会以多种方式得到回应。尽可能具体,以获得快速准确的答案。
-
这似乎是多余的?在不了解更多信息的情况下,我会说您可以跳过一起执行第一个查询集。
标签: django outer-join django-queryset