Перед 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_id | name |
|---|---|---|
| 1 | 1 | Пылесос S6 |
Используя NOT EXISTS, не нужно исключать NULL значения, как это требуется в NOT IN.