Встречается на 1% собеседований по Python
Делал ли subquery в Django ORM
Да, делал. Subquery в Django ORM позволяет вложить один запрос в другой, что полезно для сложных фильтраций или аннотаций.
Пример с Subquery:
python
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])
)
text
Ключевые моменты:
1. `OuterRef` ссылается на внешний запрос (`Post`).
2. `Subquery` должен возвращать ровно одну строку и одно поле (или использовать `[:1]`).
3. Подзапрос выполняется для каждой строки основного запроса, что может быть неэффективно для больших таблиц.
Альтернативы: `Exists()`, `Window`-функции или джойны, если важна производительность.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы