From 1c4f5f314e2b0c77b3fa0c75f703218e7e06f4be Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Wed, 14 Jun 2023 00:28:42 -0400 Subject: Refs #32143 -- Removed superflous constraints on excluded query. The outer query reference is not necessary when alias can be reused and can even be harmful by confusing query planers. Refs #34597. --- django/db/models/sql/query.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'django/db/models/sql') diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 12066cd4f8..13a6809dd8 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -2020,10 +2020,11 @@ class Query(BaseExpression): lookup = lookup_class(pk.get_col(query.select[0].alias), pk.get_col(alias)) query.where.add(lookup, AND) query.external_aliases[alias] = True + else: + lookup_class = select_field.get_lookup("exact") + lookup = lookup_class(col, ResolvedOuterRef(trimmed_prefix)) + query.where.add(lookup, AND) - lookup_class = select_field.get_lookup("exact") - lookup = lookup_class(col, ResolvedOuterRef(trimmed_prefix)) - query.where.add(lookup, AND) condition, needed_inner = self.build_filter(Exists(query)) if contains_louter: -- cgit v1.3