EXISTS 子查询

从 EXISTS 子查询,可返回那些在一个或多个列中的满足 EXISTS 条件的行。(类似地,NOT EXISTS 子查询可返回在一列或多列中满足 NOT EXISTS 条件的那些行。)

下列带有 NOT EXISTS 子查询的 SELECT 语句返回那些从未被订购的每项的库存编号和生产商代码(因而未罗列在 items 表中)。

在此 SELECT 语句中使用 NOT EXISTS 子查询是恰当的,因为您需要相关联的子查询来同时测试 items 表中的 stock_nummanu_code
SELECT stock_num, manu_code FROM stock
        WHERE NOT EXISTS
        (SELECT stock_num, manu_code FROM items
        WHERE stock.stock_num = items.stock_num AND
        stock.manu_code = items.manu_code);

如果您在列名称的位置在子查询中使用 SELECT *,则前一示例同样奏效,因为您正在测试一行或多行是否存在。

要获取附加的信息,请参阅 EXISTS 子查询条件