Spec-Zone .ru
спецификации, руководства, описания, API

13.2.10.6. Подзапросы с EXISTS или NOTEXISTS

Если подзапрос возвращает какие-либо строки вообще, EXISTS subquery TRUE, и NOT EXISTS subquery FALSE. Например:

SELECT column1 FROM t1 WHERE EXISTS (SELECT * FROM t2);

Традиционно, EXISTS подзапрос запускается с SELECT *, но это могло начаться SELECT 5 или SELECT column1 или что-либо вообще. MySQL игнорирует SELECT список в таком подзапросе, таким образом, это не имеет никакого значения.

Для предыдущего примера, если t2 содержит любые строки, даже строки с только NULL значения, EXISTS условие TRUE. Это - фактически маловероятный пример потому что a [NOT] EXISTS подзапросите почти всегда содержит корреляции. Вот некоторые более реалистические примеры:

Последним примером является двойным образом вложенный NOT EXISTS запрос. Таким образом, у этого есть a NOT EXISTS пункт в пределах a NOT EXISTS пункт. Формально, это отвечает на вопрос, "делает город, существуют с хранилищем, которое не находится в Stores"? Но легче сказать что вложенный NOT EXISTS отвечает на вопрос," x TRUE для всех y?"