Перед 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
.