Выбор ответа Junior Подзапросы и CTE обновлено

Что такое коррелированный подзапрос

Вопрос

Какой подзапрос называется коррелированным?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ссылается на колонки внешнего запроса. Корреляция значит зависимость от текущей строки внешнего запроса, например WHERE o.customerid = c.id.

Варианты ответа

  1. Ссылается на колонки внешнего запросаправильный ответ
  2. Стоит в секции FROM и материализуется до основного запроса
  3. Возвращает несколько колонок и сравнивается с кортежем
  4. Использует JOIN внутри и соединяется с внешней таблицей

Разбор

Корреляция значит зависимость от текущей строки внешнего запроса, например WHERE o.customer_id = c.id. Подзапрос в FROM (derived table) обычно как раз некоррелированный. Число колонок и JOIN внутри не делают подзапрос коррелированным. Важно: «вычисляется для каждой строки» это логическая модель, планировщик часто превращает такой подзапрос в соединение.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.