Делал ли subquery в Django ORM

Python Junior Без компании
Делал ли subquery в Django ORM
Ответы
Да, делал. Subquery в Django ORM позволяет вложить один запрос в другой, что полезно для сложных фильтраций или аннотаций. Пример с `Subquery`: ``` from django.db.models import OuterRef, Subquery # Получить последний комментарий для каждого поста latest_comments = Comment.objects.filter( post=OuterRef('pk') ).order_by('-created_at') posts = Post.objects.annotate( last_comment_text=Subquery(latest_comments.values('text')[:1]) ) ``` Ключевые моменты: - `OuterRef` ссылается на внешний запрос (`Post`). - `Subquery` должен возвращать ровно одну строку и одно поле (или использовать `[:1]`). - Подзапрос выполняется для каждой строки основного запроса, что может быть неэффективно для больших таблиц. Альтернативы: `Exists()`, `Window`-функции или джойны, если важна производительность.