【问题标题】:How to change WHERE NOT EXISTS to ANY?如何将 WHERE NOT EXISTS 更改为 ANY?
【发布时间】:2021-07-14 23:39:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql where-clause any


    【解决方案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)
      

      【讨论】:

      • 我必须将其更改为 ANY 子句。我不能使用 ALL。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2020-06-22
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多