Встречается на собеседованиях • сегодня
Какой SQL запрос эмулирует select_related() в Django
Django's select_related() оптимизирует запросы, выполняя JOIN для связанных моделей. Эквивалентный SQL-запрос будет использовать явные JOIN:
sql
SELECT
main_table.*,
related_table.*
FROM
main_table
LEFT JOIN
related_table ON main_table.foreign_key_id = related_table.idПример для моделей Book (с ForeignKey на Author):
python
# Django
Book.objects.select_related('author').all()
# Эквивалентный SQL
SELECT "app_book".*, "app_author".*
FROM "app_book"
LEFT JOIN "app_author" ON ("app_book"."author_id" = "app_author"."id")LEFT JOIN гарантирует выборку всех записей основной таблицы, даже если связанная запись отсутствует. Для OneToOne используется аналогичный синтаксис.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы