SQL EXISTS | ||
连接内查询和外查询有好几种方式,如 IN, >, <, 及 =。 EXISTS 也是其中一种方式。这一页我们将讨论 EXISTS 的用法。 基本上, EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。 EXISTS 的语法是: SELECT "栏位1"
FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件"); 在内查询中,我们并不一定要用 * 来选出所有的栏位。我们也可以选择表格 2 中的任何栏位。这两种做法最后的结果是一样的。 来看一个例子。假设我们有以下的两个表格: Store_Information 表格
Geography 表格
而我们打入的 SQL 是: SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS (SELECT * FROM Geography WHERE Region_Name = 'West'); 我们会得到以下的答案:
乍看之下,这个答案似乎不太正确,因为内查询有包含一个 [Region_Name = 'West'] 的条件,可是最后的答案并没有包含这个条件。实际上,这并没有问题。在这个例子中,内查询产生了超过一笔的资料,所以 EXISTS 的条件成立,所以外查询被执行。而外查询本身并没有包含 [Region_Name = 'West'] 这个条件。
|