"подзапрос" - это неопределенная терминология SQL, используемая для описания того, когда в запросе содержится более одного оператора "SELECT" или используется в операторах языка данных (DML) (IE: DELETE, UPDATE, INSERT, MERGE). Оператор SELECT подзапроса всегда находится в скобках/скобках.

Подзапрос - это запрос, который вложен в оператор SELECT, INSERT, UPDATE или DELETE или в другой подзапрос. Подзапрос может использоваться везде, где разрешено выражение. В этом примере подзапрос используется как выражение столбца с именем MaxUnitPrice в инструкции SELECT.

"Подзапрос" - это неопределенная терминология SQL, используемая для описания, когда есть:

  • либо более одного SELECT в запросе, либо при использовании в операторах языка манипулирования данными (DML) (IE: DELETE, UPDATE, INSERT, MERGE).
  • Оператор SELECT подзапроса всегда находится в скобках/скобках.

Это расплывчато, потому что большинство относится к любому из следующего как подзапросы:

подвыбор

Следующее может возвращать только одно значение - более одного вызовет ошибку.

SELECT f.column,
       (SELECT b.col
          FROM BAR b) AS col2
  FROM FOO f

Вот коррелированная версия подвыбора:

SELECT f.column,
       (SELECT b.col
          FROM BAR b
         WHERE b.col2 = f.col2) AS col2
  FROM FOO f

Производная таблица/встроенное представление

SELECT f.*
  FROM (SELECT t.*
          FROM FOOBAR t) AS f

IN/NOT IN

SELECT f.*
  FROM FOO f
 WHERE f.column IN (SELECT b.col
                      FROM BAR b)


SELECT f.*
  FROM FOO f
 WHERE f.column NOT IN (SELECT b.col
                          FROM BAR b)

СУЩЕСТВУЕТ/НЕ СУЩЕСТВУЕТ

Большинство назвало бы следующий "коррелированный подзапрос", но только если они не знают, как работает оператор EXISTS в SQL.

SELECT f.*
  FROM FOO f
 WHERE EXISTS (SELECT NULL
                 FROM BAR b
                WHERE b.col = f.column)


SELECT f.*
  FROM FOO f
 WHERE NOT EXISTS (SELECT NULL
                     FROM BAR b
                    WHERE b.col = f.column)

Заключение

Подзапросы (и связанные подзапросы) возвращают только одно значение, и база данных выдаст ошибку, если подзапрос вернет более одного значения.

Благодаря лучшему использованию терминологии становится легче сообщать о проблемах при их возникновении.