Django的ORM过滤器获取的行总数is_null = True,is_null = False与所有行的总和不同。为什么呢?

时间:2016-06-20 14:46:06

标签: python django orm left-join mariadb

在没有详细介绍我的项目的情况下,我认为我在这里看不到一些非常简单的东西,需要一些新思维来看待它。 因此,请查看以下查询:

>>> p = MartProduct.objects.filter(source_id=2, eans__isnull=True).count()
100
>>> p = MartProduct.objects.filter(source_id=2, eans__isnull=False).count()
50
>>> p = MartProduct.objects.filter(source_id=2).count()
125

了解模型及其字段代表什么当然不重要。只需要将 is_null = True is_null = False 的总和与总行数相匹配。换句话说,我希望最后一个查询的结果是150而不是125!如果是另一种方式(对象总数>而不是 is_null = True is_null = False 的总和那么我可以想到它的原因但是这个很奇怪)。

这可能是什么原因?我什么都想不到。 感谢任何愿意加入这个难题的人:)

0 个答案:

没有答案