Как изменить ТО, ЧЕГО НЕ СУЩЕСТВУЕТ, на ТО, ЧЕГО НЕТ?

#sql #where-clause #any

Вопрос:

Как я могу изменить этот следующий код с ТОГО МЕСТА, ГДЕ ЕГО НЕТ, на ЛЮБОЙ

 SELECT
    CategoryName
FROM 
    Categories
WHERE 
    NOT EXISTS (SELECT *
                FROM Products
                WHERE Categories.CategoryID = Products.CategoryID)
 

Моя цель состояла в том, чтобы показать, с названиями каких категорий не связаны продукты. Пожалуйста, прокомментируйте, если вам нужна схема.

Ответ №1:

Если вам нужно использовать any , просто откажитесь от этого с помощью not

 select CategoryName
FROM Categories
where not (categoryId = any (select CategoryId from products))
 

Ответ №2:

Кажется странным, но вы можете использовать ALL вместо ANY :

 select c.*
from categories c
where categoryID <> all (select p.categoryID from products p)
 

Комментарии:

1. Я должен изменить его на ЛЮБОЙ пункт. Я не могу использовать ВСЕ.