Оператор EXISTS проверяет, возвращает ли подзапрос какое-либо значение. Как правило, этот оператор используется для индикации того, что как минимум одна строка в таблице удовлетворяет некоторому условию. Поскольку возвращения набора строк не происходит, то подзапросы с подобным оператором выполняются довольно быстро.
Синтаксис:
WHERE [NOT] EXISTS (подзапрос)
Пример использования:
SELECT * FROM product WHERE EXISTS (SELECT * FROM orders WHERE orders.prod_id = product.id)
В данном запросе происходит выборка всех записей из таблицы product, которые есть в таблице заказов – orders. Для обратного случая можно использовать NOT EXISTS.
SELECT * FROM product WHERE NOT EXISTS (SELECT * FROM orders WHERE orders.prod_id = product.id)
В данном случае будут выбраны записи из таблицы product, которые не встречаются в таблице заказов orders.