我正在使用 Q 对象构建查询,但它挂起。
当我将过滤器“与”在一起时,查询工作正常。这是示例:
School.objects.filter( Q(city__search='"orlando"'), Q(schoolattribute__attribute__name__search='"subjects"') )
但是当我将过滤器“或”在一起时,查询只是挂起,因为我假设有太多要处理的事情:
School.objects.filter( Q(city__search='"orlando"') | Q(schoolattribute__attribute__name__search='"subjects"')
我想知道这里到底发生了什么,我能做些什么来减轻它。为什么使用“AND”时查询有效,而使用“OR”时查询无效?
编辑:好的提示@psagers。所以事实证明,AND 查询获得了两个 INNER JOIN,而 OR 查询获得了两个 LEFT OUTER JOIN。