Оператор EXISTS проверяет, возвращает ли подзапрос какое-либо значение. Как правило, этот оператор используется для индикации того, что как минимум одна строка в таблице удовлетворяет некоторому условию. Поскольку возвращения набора строк не происходит, то подзапросы с подобным оператором выполняются довольно быстро.
Применение оператора имеет следующий формальный синтаксис:
| 1 | WHERE [NOT] EXISTS (подзапрос) |
Например, найдем все товары из таблицы Products, на которые есть заказы в таблице Orders:
| 1 2 3 | SELECT * FROM ProductsWHERE EXISTS (SELECT * FROM Orders WHERE Orders.ProductId = Products.Id) |

Если мы хотим узнать, наоброт, есть ли в таблице строки, которые НЕ удовлетворяют условию, то можно использовать операторы NOT EXISTS. Например, найдем все товары из таблицы Products, на которые не было заказов в таблице Orders:
| 1 2 | SELECT * FROM ProductsWHERE NOT EXISTS (SELECT * FROM Orders WHERE Products.Id = Orders.ProductId) |
Стоит отметить, что для получения подобного результата можно было бы использовать и опеатор IN:
| 1 2 3 | SELECT *FROM ProductsWHERE Id NOT IN (SELECT ProductId FROM Orders) |
Но поскольку при применении EXISTS не происходит выборка строк, то его использование более оптимально и эффективно, чем использование оператора IN.