Подзапросы

Проверка отсутствия строки

Перед EXISTS можно поставить отрицание NOT.

NOT EXISTS (подзапрос) принимает значение TRUE, когда подзапрос не возвращает ни одной строки.

Найдем товары, которые ни разу не проданы:

SELECT p.product_id,
       p.name
  FROM product p
 WHERE NOT EXISTS (SELECT 1
                     FROM purchase_item pi
                    WHERE pi.product_id = p.product_id)
 ORDER BY p.name
#product_idname
11Пылесос S6

Используя NOT EXISTS, не нужно исключать NULL значения, как это требуется в NOT IN.

ПредыдущаяСледующая