如何将 WHERE NOT EXISTS 更改为 ANY?

How to change WHERE NOT EXISTS to ANY?

如何将以下代码从 WHERE NOT EXISTS 更改为 ANY

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

我的目标是显示哪些类别名称没有与之关联的产品。如果您需要架构,请发表评论。

看起来很奇怪,但是你可以使用 ALL 而不是 ANY:

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

如果你需要使用 any 那么只需用 not

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